diff --git a/Dockerfile b/Dockerfile index 560df4b2..844f7e23 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,14 +20,36 @@ RUN apt-get update -y --quiet --fix-missing && \ libgsl-dev \ libcfitsio-dev \ libfftw3-dev \ - texlive-latex-base \ - texlive-latex-recommended \ - texlive-fonts-recommended \ - dvipng \ - ghostscript \ - cm-super && \ + perl \ + curl \ + ghostscript && \ rm -rf /var/lib/apt/lists/* +# TinyTeX pinned to a TeX Live year (frozen tlnet-final mirror); bump both once a year. +ENV TEXLIVE_YEAR=2025 \ + TINYTEX_VERSION=2026.02 \ + TINYTEX_DIR=/opt \ + PATH=/opt/.TinyTeX/bin/x86_64-linux:$PATH +RUN set -eux; \ + curl -fsSL https://yihui.org/tinytex/install-bin-unix.sh | sh; \ + tlmgr option sys_bin /usr/local/bin; \ + tlmgr option repository \ + "https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${TEXLIVE_YEAR}/tlnet-final/"; \ + tlmgr option docfiles 0; \ + tlmgr option srcfiles 0; \ + tlmgr install \ + type1cm \ + cm-super \ + dvipng \ + underscore \ + ulem \ + amsmath \ + amsfonts \ + geometry \ + xcolor; \ + tlmgr path add; \ + latex --version >/dev/null; dvipng --version >/dev/null + # The base shapepipe image provides a uv-managed venv at /app/.venv (exported as # VIRTUAL_ENV); install sp_validation's deps into that same venv rather than # spawning a second one under /sp_validation.