home/Dockerfile
2024-12-19 20:14:15 +01:00

43 lines
1.1 KiB
Docker

FROM nginxinc/nginx-unprivileged:1.25.2-bookworm
ARG UID=101
ENV DEBIAN_FRONTEND=noninteractive
USER 0
RUN apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
build-essential \
python3-dev \
python3-venv \
python3-wheel \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Installing jsonnet using pip takes about 5 min, because for some reason it
# needs to be compiled. To help docker cache it properly, we preinstall it into
# venv, because otherwise it would be installed as part of `lektor build`.
RUN python3 -m venv /tmp/venv \
&& /tmp/venv/bin/pip3 install wheel \
&& /tmp/venv/bin/pip3 install lektor jsonnet \
;
# set reasonable worker_processes (auto=number of host cpus)
RUN sed -i -r 's/^(worker_processes)(.*)$/\1 '2';/' /etc/nginx/nginx.conf
RUN mkdir -p /tmp/src
ADD assets/ /tmp/src/assets/
ADD content/ /tmp/src/content/
#ADD models/ /tmp/src/models/
ADD packages/ /tmp/src/packages/
ADD templates/ /tmp/src/templates/
ADD *.lektorproject /tmp/src/
WORKDIR /tmp/src
RUN /tmp/venv/bin/lektor build \
&& /tmp/venv/bin/lektor deploy docker \
;
USER $UID
EXPOSE 8080