37 lines
870 B
Docker
37 lines
870 B
Docker
# syntax=docker/dockerfile:1
|
|
FROM python:3.13-slim
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
ENV UV_SYSTEM_PYTHON=1
|
|
|
|
WORKDIR /app
|
|
|
|
ARG UID=10001
|
|
RUN adduser \
|
|
--disabled-password \
|
|
--gecos "" \
|
|
--home "/nonexistent" \
|
|
--shell "/sbin/nologin" \
|
|
--no-create-home \
|
|
--uid "${UID}" \
|
|
appuser
|
|
|
|
RUN --mount=type=cache,target=/var/cache/apt \
|
|
apt-get update && apt-get install -y --no-install-recommends \
|
|
git && rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN --mount=from=ghcr.io/astral-sh/uv,source=/uv,target=/bin/uv \
|
|
--mount=type=cache,target=/root/.cache/uv \
|
|
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
|
|
--mount=type=bind,source=uv.lock,target=uv.lock \
|
|
uv sync --no-dev --locked --no-install-project
|
|
|
|
COPY . .
|
|
|
|
RUN SECRET_KEY=secret .venv/bin/python manage.py collectstatic --noinput
|
|
|
|
USER appuser
|