36 lines
1.1 KiB
Docker
36 lines
1.1 KiB
Docker
FROM python:3.13-alpine3.23 AS builder
|
|
ENV UV_SYSTEM_PYTHON=1
|
|
|
|
COPY --from=ghcr.io/astral-sh/uv:0.11 /uv /usr/local/bin/uv
|
|
COPY pyproject.toml .
|
|
RUN uv pip install -r pyproject.toml
|
|
|
|
FROM python:3.13-alpine3.23
|
|
|
|
COPY --from=builder /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages
|
|
|
|
WORKDIR /code
|
|
|
|
# Set user and group
|
|
ARG user=apps
|
|
ARG uid=1001
|
|
ARG gid=1001
|
|
|
|
RUN addgroup -S ${user} && adduser -S ${user} -G ${user} -u ${uid} -s /bin/sh
|
|
|
|
RUN apk add --no-cache gettext pango ttf-dejavu
|
|
RUN chown -R ${user}:${user} /code
|
|
|
|
COPY --chown=${user}:${user} . /code
|
|
|
|
# SECRET_KEY/ALLOWED_HOSTS provisionales para la construcción de la imagen
|
|
# (build.sh carga settings, que ya no traen un valor por defecto para
|
|
# ninguna de las dos, ver config/settings/env.py). En producción no se
|
|
# heredan: solo existen en esta RUN, no quedan en la imagen final.
|
|
RUN apk add --no-cache --virtual .tailwind-runtime libstdc++ libgcc \
|
|
&& SECRET_KEY=build-only ALLOWED_HOSTS='*' su ${user} -c "sh ./scripts/build.sh" \
|
|
&& apk del .tailwind-runtime
|
|
|
|
USER ${user}
|
|
CMD ["sh", "./scripts/run.sh"]
|