nerd-fonts Docker & Self-Hosted Deployment

GitHub

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material...

1. Pull Image (DOCKERHUB) docker pull ryanoasis/nerd-fonts:latest
2. Docker Run (1-Click Launch) docker run -d --name nerd-fonts --restart always ryanoasis/nerd-fonts:latest
3. Podman Run podman run -d --name nerd-fonts --restart always ryanoasis/nerd-fonts:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/ryanoasis/nerd-fonts:latest
5. ORAS Pull (OCI Artifact) oras pull ryanoasis/nerd-fonts:latest
Dockerfile
FROM alpine:latest

LABEL org.opencontainers.image.title="Nerd Fonts Patcher" \
      org.opencontainers.image.description="Patches developer targeted fonts with a high number of glyphs (icons)." \
      org.opencontainers.image.url="https://www.nerdfonts.com/" \
      org.opencontainers.image.source="https://github.com/ryanoasis/nerd-fonts" \
      org.opencontainers.image.licenses="MIT"

RUN <<ENDOFRUN
apk update
apk upgrade
echo "Add build dependencies"
apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/latest-stable/community \
  alpine-sdk \
  cmake \
  coreutils \
  freetype-dev \
  gettext-dev \
  harfbuzz-dev \
  libxml2-dev \
  ninja \
  python3-dev \
  woff2-dev
echo "Add execute dependencies"
apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/latest-stable/community \
  freetype \
  harfbuzz \
  libxml2 \
  python3 \
  woff2
echo "Fetch and build fontforge"
git clone https://github.com/fontforge/fontforge.git
cd fontforge
git checkout 3a960a4d83c65b8ff5fc0bab8b1f19964aa023df
mkdir build
cd build
cmake -GNinja \
  -DENABLE_GUI=off \
  -DENABLE_DOCS=off \
  -DENABLE_NATIVE_SCRIPTING=off \
  -DENABLE_LIBSPIRO=off \
  -DENABLE_PYTHON_EXTENSION=off \
  ..
ninja
cmake --install . --strip
cd ../..
rm -rf fontforge
rm -rf /usr/local/share
echo "Remove build dependencies"
apk del --rdepends \
  alpine-sdk \
  cmake \
  coreutils \
  freetype-dev \
  gettext-dev \
  harfbuzz-dev \
  libxml2-dev \
  ninja \
  python3-dev \
  tiff-dev \
  woff2-dev
echo "Add additional runtime dependencies"
apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/latest-stable/community \
  parallel
ENDOFRUN

ENV PYTHONIOENCODING=utf-8

VOLUME /in /out
COPY . /nerd

ENTRYPOINT [ "/bin/sh", "/nerd/bin/scripts/docker-entrypoint.sh" ]