PolyPaper/Dockerfile.tinytex

39 lines
1.3 KiB
Docker
Executable File

# syntax=docker/dockerfile:1
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1 \
LC_ALL=C.UTF-8 \
LANG=C.UTF-8 \
TINYTEX_DIR=/opt/TinyTeX \
PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH
# Tools that the TinyTeX installer uses (wget, tar, xz) + our stack
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl wget tar xz-utils \
git make \
emacs-nox \
python3 python3-pip python3-matplotlib \
perl \
&& rm -rf /var/lib/apt/lists/*
# Install TinyTeX *into /opt/TinyTeX* and set up tlmgr on PATH
# (we call tlmgr via its absolute path once, then rely on the symlinks it creates)
RUN curl -fsSL https://yihui.org/tinytex/install-unx.sh \
| TINYTEX_DIR="$TINYTEX_DIR" sh -s - --admin --no-path \
&& "$TINYTEX_DIR"/bin/*/tlmgr path add \
&& "$TINYTEX_DIR"/bin/*/tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet \
&& "$TINYTEX_DIR"/bin/*/tlmgr update --self \
&& "$TINYTEX_DIR"/bin/*/tlmgr install \
latexmk biber latex-bin biblatex hyperref geometry microtype etoolbox enumitem \
xcolor listings ieeetran acmart elsarticle \
&& fmtutil-sys --all
# Non-root user (maps nicer to host file perms)
RUN useradd -m -s /bin/bash builder || true
WORKDIR /work
USER builder
CMD ["bash", "-lc", "make VENUE=arxiv"]