FROM alpine:latest
LABEL org.opencontainers.image.description Configures a typesetting system.
ENV ENV="/etc/profile"
ENV PROFILE=/etc/profile
ENV INSTALL_DIR=/opt
ENV SOURCE_DIR=/root/source
ENV TARGET_DIR=/root/target
ENV IMAGES_DIR=/root/images
ENV THEMES_DIR=/root/themes
ENV CACHES_DIR=/root/caches
ENV FONTS_DIR=/usr/share/fonts/user
ENV DOWNLOAD_DIR=/root
ENV CONTEXT_HOME=$INSTALL_DIR/context
ENV CONTEXT_ARCH=linuxmusl-64
WORKDIR $DOWNLOAD_DIR
ENV FONTS_LIST="andada-pro archivo-narrow arimo carlito courier-prime \
inconsolata inter libre-baskerville libre-franklin niconne nunito \
open-sans-emoji pt-mono pt-sans pt-serif roboto roboto-mono source-serif-4 \
snickles tw-kai underwood"
RUN mkdir -p "$FONTS_DIR" && \
for font in $FONTS_LIST; do \
wget "https://fonts.keenwrite.com/download/${font}.zip"; \
done
ADD "http://lmtx.pragma-ade.nl/install-lmtx/context-${CONTEXT_ARCH}.zip" "context.zip"
WORKDIR $CONTEXT_HOME
RUN \
apk update && \
apk add -t py3-cssselect && \
apk add -t py3-lxml && \
apk add -t py3-numpy && \
apk --update --no-cache \
add ca-certificates curl fontconfig rsync
RUN apk --update --no-cache add inkscape
RUN \
mkdir -p \
"$FONTS_DIR" \
"$INSTALL_DIR" \
"$TARGET_DIR" \
"$SOURCE_DIR" \
"$THEMES_DIR" \
"$IMAGES_DIR" \
"$CACHES_DIR" && \
echo "export CONTEXT_HOME=\"$CONTEXT_HOME\"" >> $PROFILE && \
echo "export PATH=\"\$PATH:\$CONTEXT_HOME/tex/texmf-$CONTEXT_ARCH/bin\"" >> $PROFILE && \
echo "export OSFONTDIR=\"/usr/share/fonts//\"" >> $PROFILE && \
echo "PS1='\\u@typesetter:\\w\\$ '" >> $PROFILE && \
unzip -d $CONTEXT_HOME $DOWNLOAD_DIR/context.zip && \
for font in $FONTS_LIST; do \
unzip -j -o -d $FONTS_DIR "$DOWNLOAD_DIR/${font}.zip" '*.ttf' '*.otf'; \
done && \
fc-cache -f -v && \
sh install.sh && \
rm -rf \
"modules" \
"/var/cache" \
"/usr/share/icons" \
"/opt/context/tex/texmf-context/source" \
$DOWNLOAD_DIR/*.zip \
$CONTEXT_HOME/tex/texmf-modules/doc \
$CONTEXT_HOME/tex/texmf-context/doc && \
mkdir -p $CONTEXT_HOME/tex/texmf-fonts/tex/context/user && \
ln -s $CONTEXT_HOME/tex/texmf-fonts/tex/context/user $HOME/.fonts && \
source $PROFILE && \
mtxrun --generate && \
find \
/usr/share/inkscape \
-type f -not -iname \*.xml -exec rm {} \; && \
find \
$CONTEXT_HOME \
-type f \
\( -iname \*.pdf -o -iname \*.txt -o -iname \*.log \) \
-exec rm {} \;
WORKDIR $TARGET_DIR