43 lines
1.1 KiB
Docker
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
|