From 3ccda222d3b3d93bab36bc4566aa2227902ec2b2 Mon Sep 17 00:00:00 2001 From: ITQ Date: Tue, 18 Feb 2025 14:12:25 +0300 Subject: [PATCH] feat: added Dockerfile for staticfiles --- .../services/backend/Dockerfile.staticfiles | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 solution/services/backend/Dockerfile.staticfiles diff --git a/solution/services/backend/Dockerfile.staticfiles b/solution/services/backend/Dockerfile.staticfiles new file mode 100644 index 0000000..fb3fef2 --- /dev/null +++ b/solution/services/backend/Dockerfile.staticfiles @@ -0,0 +1,27 @@ +# Stage 1: Install dependencies and compile staticfiles +FROM docker.io/python:3.11-alpine3.20 AS builder + +COPY --from=ghcr.io/astral-sh/uv:0.4.30 /uv /uvx /bin/ + +WORKDIR /app + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + PYTHONOPTIMIZE=2 \ + UV_COMPILE_BYTECODE=1 \ + UV_PROJECT_ENVIRONMENT=/opt/venv + +COPY pyproject.toml . + +RUN uv sync --no-dev --no-install-project --no-cache + +COPY . . + +RUN uv run python manage.py collectstatic --noinput + +# Stage 2: Start nginx to serve staticfiles +FROM docker.io/nginx:latest + +COPY --from=builder /app/static /usr/share/nginx/html + +CMD ["nginx", "-g", "daemon off;"]