Files
computer-playbook/roles/web-app-bookwyrm/templates/Dockerfile.j2
Kevin Veen-Birkenbach 7c814e6e83 BookWyrm: update Dockerfile and env handling
- Remove ARG BOOKWYRM_VERSION default, use Jinja variable directly
- Add proper SMTP environment variables mapping (EMAIL_HOST, EMAIL_PORT, TLS/SSL flags, user, password, default_from)
- Ensure env.j2 uses BookWyrm-expected names only
Ref: ChatGPT conversation 2025-09-02 https://chatgpt.com/share/68b6dc73-3784-800f-9a7e-340be498a412
2025-09-02 14:01:04 +02:00

39 lines
1.3 KiB
Django/Jinja

# Build BookWyrm from source (no upstream image available)
FROM python:3.11-bookworm AS builder
RUN apt-get update && apt-get install -y --no-install-recommends \
git build-essential libpq-dev \
libjpeg-dev zlib1g-dev libxml2-dev libxslt1-dev libffi-dev libmagic-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
# Shallow clone the chosen tag/branch
RUN git clone --depth=1 --branch "{{ BOOKWYRM_VERSION }}" https://github.com/bookwyrm-social/bookwyrm.git .
# Pre-install Python deps to a wheelhouse for faster final image
RUN pip install --upgrade pip \
&& pip wheel --wheel-dir /wheels -r requirements.txt
FROM python:3.11-bookworm
ENV PYTHONUNBUFFERED=1
WORKDIR /app
# Copy app source and wheels
COPY --from=builder /src /app
COPY --from=builder /wheels /wheels
# System deps for runtime
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq5 curl \
libjpeg62-turbo zlib1g libxml2 libxslt1.1 libffi8 libmagic1 \
&& rm -rf /var/lib/apt/lists/* \
&& pip install --no-cache-dir --no-index --find-links=/wheels -r /app/requirements.txt \
&& adduser --disabled-password --gecos '' bookwyrm \
&& mkdir -p /app/data /app/media \
&& chown -R bookwyrm:bookwyrm /app
USER bookwyrm
# Gunicorn/Celery are configured by upstream files in repo
# Ports/healthcheck handled by compose template