FROM node:18-bookworm-slim
LABEL maintainer="Glenn ROLLAND glenux@glenux.net"

ENV DOCMACHINE_DOCS_ENABLE=1
ENV DOCMACHINE_SLIDES_ENABLE=1

RUN apt-get update \
 && apt-get install -y --no-install-recommends python3 python3-pip python-is-python3 pipenv \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
 && truncate -s 0 /var/log/*log

# Tools for running the common parts
RUN apt-get update \
 && apt-get install -y --no-install-recommends make build-essential inotify-tools gosu unzip curl rsync \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
 && truncate -s 0 /var/log/*log

# Tools for building pdfs
RUN apt-get update \
 && apt-get install -y --no-install-recommends make m4 chromium pandoc ghc libghc-pandoc-dev lmodern texlive texlive-xetex texlive-fonts-extra texlive-fonts-recommended librsvg2-bin fonts-noto-mono \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
 && truncate -s 0 /var/log/*log

# External tools
# yq => manage YML
RUN curl -sSL -o /usr/local/bin/yq \
         https://github.com/mikefarah/yq/releases/download/v4.44.6/yq_linux_amd64 \
 && chmod +x /usr/local/bin/yq

COPY . /app
COPY .marp /app/.marp
WORKDIR /app

ENV LANG=C.UTF-8 \
    LC_ALL=C.UTF-8 \
    PIPENV_HIDE_EMOJIS=1 \
    PIPENV_VENV_IN_PROJECT=1

RUN make prepare SYSTEM_INSTALL=1

ENTRYPOINT ["/app/docker/entrypoint.sh"]
CMD ["watch"]