# BookWyrm v0.8+ uses pyproject.toml/PEP735, so the install needs pip>=25.1 for `--group`. ARG BOOKWYRM_IMAGE ARG BOOKWYRM_VERSION FROM ${BOOKWYRM_IMAGE}:${BOOKWYRM_VERSION} AS builder RUN rm -rf /var/lib/apt/lists/* \ && apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y --no-install-recommends \ git build-essential libpq-dev \ libjpeg-dev zlib1g-dev libxml2-dev libxslt1-dev libffi-dev libmagic-dev \ libsass-dev gettext tidy \ && rm -rf /var/lib/apt/lists/* ENV SYSTEM_SASS=True WORKDIR /src ARG BOOKWYRM_REPOSITORY ARG BOOKWYRM_REF RUN git clone --depth=1 --branch "${BOOKWYRM_REF}" "${BOOKWYRM_REPOSITORY}" . RUN python -m venv /venv \ && /venv/bin/pip install --upgrade "pip>=25.1.0" \ && /venv/bin/pip install --group main FROM ${BOOKWYRM_IMAGE}:${BOOKWYRM_VERSION} ENV PYTHONUNBUFFERED=1 ENV PATH=/venv/bin:$PATH ENV SYSTEM_SASS=True WORKDIR /app RUN rm -rf /var/lib/apt/lists/* \ && apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y --no-install-recommends \ libpq5 curl \ libjpeg62-turbo zlib1g libxml2 libxslt1.1 libffi8 libmagic1 \ libsass1 gettext tidy \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /venv /venv COPY --from=builder /src /app COPY header_auth.py /app/bookwyrm/header_auth.py COPY settings_patch.py /tmp/settings_patch.py RUN cat /tmp/settings_patch.py >> /app/bookwyrm/settings.py RUN adduser --disabled-password --gecos '' bookwyrm \ && mkdir -p /app/data /app/media \ && chown -R bookwyrm:bookwyrm /app /venv USER bookwyrm