bottleneckcrm/Dockerfile
Ragnar Laud 0cfd54d945
fix: move venv outside of backend in dockerfile
The venv's bin directory gets overwritten when the docker copies the
backend directory into the image. This moves the venv outside of the
backend so that it does not get overwritten.
2026-08-05 01:12:07 +07:00

36 lines
1.1 KiB
Docker

FROM python:3.12-slim-bookworm
# Prevent Python from buffering stdout/stderr (useful for Docker logs)
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
# Install system dependencies for WeasyPrint (cairo, pango) and PostgreSQL
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev \
libcairo2 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libgdk-pixbuf2.0-0 \
libffi-dev \
shared-mime-info \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install uv (fast Python package manager).
COPY --from=ghcr.io/astral-sh/uv:0.11 /uv /usr/local/bin/uv
# Move the venv outside of backend so it doesn't get overwritten with the copy
ENV UV_PROJECT_ENVIRONMENT=/opt/venv
# Install Python dependencies into /app/.venv (layer cached on lockfile changes)
COPY backend/pyproject.toml backend/uv.lock backend/.python-version ./
RUN uv sync --frozen --no-install-project
# Copy backend source
COPY backend/ .
# Put the venv's binaries on PATH so `python`, `gunicorn`, `celery` etc. resolve.
ENV PATH="/opt/venv/bin:$PATH"
EXPOSE 8000