25 lines
694 B
Docker
25 lines
694 B
Docker
# Stdlib-only static server, so no build step and no dependencies to install.
|
|
FROM python:3.13-alpine
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
SITE_ROOTS=/srv/assets:/srv/books \
|
|
PORT=8080
|
|
|
|
WORKDIR /srv
|
|
# Baked in so the image runs standalone; compose bind-mounts over all three
|
|
# for live edits without a rebuild.
|
|
COPY server.py /srv/server.py
|
|
COPY assets/ /srv/assets/
|
|
COPY books/ /srv/books/
|
|
|
|
RUN adduser -S -u 10001 bible
|
|
USER 10001
|
|
|
|
EXPOSE 8080
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
|
|
CMD python3 -c "import urllib.request as u,sys; \
|
|
sys.exit(0 if u.urlopen('http://127.0.0.1:8080/index.html',timeout=3).status==200 else 1)"
|
|
|
|
CMD ["python3", "/srv/server.py"]
|