docker

ga-pandoc (4336a4f40de40f19e99f1f04824ab274816c0133)

Published 2026-04-18 13:21:10 +00:00 by Kocoder in docker/ga-pandoc

Installation

docker pull git.kocoder.xyz/docker/ga-pandoc:4336a4f40de40f19e99f1f04824ab274816c0133
sha256:4d38bff01e57c48ba14fcb3272e0b4547766a8729e72b48cafcb671c7d988816

About this package

Official pandoc image with pandoc, pandoc-crossref, and a minimal LaTeX installation.

Image Layers

# debian.sh --arch 'amd64' out/ 'bookworm' '@1773619200'
LABEL maintainer=Albert Krewinkel <albert+pandoc@tarleb.com>
LABEL org.pandoc.maintainer=Albert Krewinkel <albert+pandoc@tarleb.com>
LABEL org.pandoc.author=John MacFarlane
LABEL org.pandoc.version=3.9.0.2
ENV XDG_DATA_HOME=/usr/local/share
WORKDIR /data
ENTRYPOINT ["/usr/local/bin/pandoc"]
COPY /usr/local/bin/pandoc /usr/local/bin/ # buildkit
RUN /bin/sh -c ln -s /usr/local/bin/pandoc /usr/local/bin/pandoc-lua && ln -s /usr/local/bin/pandoc /usr/local/bin/pandoc-server && apt-get -q --no-allow-insecure-repositories update && DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends ca-certificates=\* liblua5.4-0=\* libatomic1=\* libgmp10=\* libpcre3=\* libyaml-0-2=\* zlib1g=\* && rm -rf /var/lib/apt/lists/* && mkdir -p "$XDG_DATA_HOME"/pandoc # buildkit
RUN /bin/sh -c apt-get -q --no-allow-insecure-repositories update && DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends librsvg2-bin=2.* && rm -rf /var/lib/apt/lists/* # buildkit
RUN /bin/sh -c set -eux # Install curl apt-get -q --no-allow-insecure-repositories update apt-get install --assume-yes --no-install-recommends --mark-auto curl xz-utils url_base='https://github.com/lierdakil/pandoc-crossref/releases/download'; case "$(uname -m)" in ('x86_64') arch="X64" crossref_hash=a521900745f7c1621b4104119f92dd4a9b4cc527f50157ef544ae1cb8435f9c1 ;; ('aarch64') arch="ARM64" crossref_hash=aaaeae858b73a4150cc91581b07e08fb6e383f476a04fd024bb03ef323b32c3e ;; (*) echo >&2 "error: unsupported architecture '$(uname -m)'" exit 1 ;; esac version="v0.3.22b" filename="pandoc-crossref-Linux-${arch}.tar.xz" curl --proto '=https' --tlsv1.3 -sSfL -o /tmp/pandoc-crossref.tar.xz \ "${url_base}/${version}/pandoc-crossref-linux-${arch}.tar.xz" echo "$crossref_hash /tmp/pandoc-crossref.tar.xz" | sha256sum -c tar -xf /tmp/pandoc-crossref.tar.xz -C /usr/local/bin pandoc-crossref # Remove archive rm /tmp/pandoc-crossref.tar.xz # Curl is no longer needed apt-get autoremove --purge --assume-yes; \ rm -rf /var/lib/apt/lists/*; # buildkit
RUN /bin/sh -c apt-get -q --no-allow-insecure-repositories update && DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends fontconfig gnupg gzip libfontconfig1 libfreetype6 perl tar wget xzdec && rm -rf /var/lib/apt/lists/* # buildkit
COPY <<EOF /root/texlive.profile # buildkit
ARG texlive_bin=/opt/texlive/texdir/bin
ARG texlive_mirror_url=
ENV PATH=/opt/texlive/texdir/bin/default:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |2 texlive_bin=/opt/texlive/texdir/bin texlive_mirror_url= /bin/sh -c set -eux cd /root TEXLIVE_ARCH="$(uname -m)-$(uname -s | tr '[:upper:]' '[:lower:]')"; \ mkdir -p ${texlive_bin} ln -sf "${texlive_bin}/${TEXLIVE_ARCH}" "${texlive_bin}/default" # Request musl precompiled binary access echo "binary_${TEXLIVE_ARCH} 1" >> /root/texlive.profile # Install TeXLive mirror_url="${texlive_mirror_url}" if [ -z "${mirror_url}" ]; then # Get the mirror URL from the redirect. Otherwise, if we were to # always use the mirror URL, we'd run into problems whenever we get # installer and signatures from different mirrors that are not 100% # in sync. mirror_url=$(wget -4 --quiet --output-document=/dev/null \ --server-response \ http://mirror.ctan.org/ \ 2>&1 | \ sed -ne 's/.*Location: \(.*\)$/\1/p' | head -n 1) fi # Trim trailing slash(es) mirror_url=$(echo "$mirror_url" | sed -e 's/\/*$//') installer_url="${mirror_url}/systems/texlive/tlnet" # Download the install-tl perl script. The archive integrity and signature is # verified later, so it's ok if we use an insecure connection. wget -4 --no-verbose --no-check-certificate \ "$installer_url/install-tl-unx.tar.gz" \ "$installer_url/install-tl-unx.tar.gz".sha512 \ "$installer_url/install-tl-unx.tar.gz".sha512.asc \ ## Verifiy installer integrity # get current signing key gpg --keyserver keyserver.ubuntu.com \ --receive-key 0xC78B82D8C79512F79CC0D7C80D5E5D9106BAB6BC || exit 5 gpg --verify install-tl-unx.tar.gz.sha512.asc || exit 5 sha512sum install-tl-unx.tar.gz.sha512 || exit 5 ## Proceed with installation # Extract installer mkdir -p ./install-tl tar --strip-components 1 -zvxf install-tl-unx.tar.gz -C "$PWD/install-tl" # Run the default installation with the specified profile. ./install-tl/install-tl \ -repository "${installer_url}" \ --profile=/root/texlive.profile # Cleanup installation artifacts. rm -rf \ ./install-tl \ install-tl-unx.tar.gz \ install-tl-unx.tar.gz.sha512 \ install-tl-unx.tar.gz.sha512.asc # Install packages required by pandoc tlmgr install \ --verify-repo=all \ amsfonts \ amsmath \ babel \ babel-basque \ babel-czech \ babel-danish \ babel-dutch \ babel-english \ babel-finnish \ babel-french \ babel-german \ babel-hungarian \ babel-italian \ babel-norsk \ babel-polish \ babel-portuges \ babel-spanish \ babel-swedish \ beamer \ biber \ biblatex \ bibtex \ bidi \ bidi \ bookmark \ booktabs \ caption \ cleveref \ csquotes \ euler \ eurosym \ fancyvrb \ float \ fontspec \ footnotehyper \ framed \ geometry \ graphics \ hyperref \ hyphen-basque \ hyphen-czech \ hyphen-danish \ hyphen-dutch \ hyphen-english \ hyphen-finnish \ hyphen-french \ hyphen-german \ hyphen-hungarian \ hyphen-italian \ hyphen-norwegian \ hyphen-polish \ hyphen-portuguese \ hyphen-spanish \ hyphen-swedish \ ifmtarg \ iftex \ latexmk \ listings \ lm \ lm-math \ lua-ul \ luacode \ luacolor \ lualatex-math \ luatexbase \ mathspec \ memoir \ microtype \ multirow \ natbib \ parskip \ pgf \ selnolig \ setspace \ soul \ subfig \ tools \ unicode-math \ upquote \ xcolor \ xetex \ xurl # Reset to the default CTAN mirror, unless a specific mirror had been # requested. if [ -z "${texlive_mirror_url}" ]; then tlmgr option repository ctan fi rm -f /root/texlive.profile # Update fonts TERM=dumb luaotfload-tool --update && \ chmod -R o+w /opt/texlive/texdir/texmf-var # buildkit
WORKDIR /data
USER root
SHELL ["/bin/bash", "-c"]
/bin/sh -c apt-get update
/bin/sh -c apt-get upgrade -y
/bin/sh -c apt-get install curl libnss3 -y
/bin/sh -c apt-get clean
/bin/sh -c rm -rf /var/lib/apt/lists/*
/bin/sh -c useradd -m runner
USER runner
ENV NVM_DIR /home/runner/.nvm
ENV NODE_VERSION 24.15.0
/bin/sh -c curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash && . $NVM_DIR/nvm.sh && npm install -g @mermaid-js/mermaid-cli
ENV NODE_PATH $NVM_DIR/versions/node/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
ENTRYPOINT ["/usr/local/bin/pandoc"]

Labels

Key Value
io.buildah.version 1.43.1
maintainer Albert Krewinkel <albert+pandoc@tarleb.com>
org.opencontainers.image.authors Albert Krewinkel <albert+pandoc@tarleb.com>
org.opencontainers.image.description Official pandoc image with pandoc, pandoc-crossref, and a minimal LaTeX installation.
org.opencontainers.image.licenses GPL-2.0-or-later
org.opencontainers.image.source https://github.com/pandoc/dockerfiles
org.opencontainers.image.title pandoc with LaTeX
org.opencontainers.image.url https://github.com/pandoc/dockerfiles
org.opencontainers.image.vendor The pandoc Docker team
org.opencontainers.image.version 3.9.0.2
org.pandoc.author John MacFarlane
org.pandoc.maintainer Albert Krewinkel <albert+pandoc@tarleb.com>
org.pandoc.version 3.9.0.2
Details
Container
2026-04-18 13:21:10 +00:00
1
OCI / Docker
linux/amd64
Albert Krewinkel <albert+pandoc@tarleb.com>
GPL-2.0-or-later
775 MiB
Versions (5) View all