Files
docqube_backend/Dockerfile
T

81 lines
1.8 KiB
Docker
Raw Normal View History

2026-09-08 11:00:05 +05:30
ARG PYTHON_VERSION=3.11.8
FROM python:${PYTHON_VERSION}-slim-bookworm AS builder
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
UV_COMPILE_BYTECODE=1 \
UV_LINK_MODE=copy \
UV_PYTHON_DOWNLOADS=0
COPY --from=ghcr.io/astral-sh/uv:0.12.8 /uv /uvx /bin/
WORKDIR /app
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
pkg-config \
libcairo2-dev \
libpango1.0-dev \
libgdk-pixbuf-2.0-dev \
libffi-dev \
libglib2.0-dev \
libjpeg-dev \
libopenjp2-7-dev \
&& rm -rf /var/lib/apt/lists/*
COPY pyproject.toml uv.lock .python-version ./
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync \
--locked \
--no-install-project \
--no-editable
FROM python:${PYTHON_VERSION}-slim-bookworm AS runtime
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PYTHONPATH=/app \
PATH="/app/.venv/bin:$PATH"
WORKDIR /app
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
libmagic1 \
poppler-utils \
libcairo2 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libgdk-pixbuf-2.0-0 \
libffi8 \
libglib2.0-0 \
libgl1 \
libjpeg62-turbo \
libopenjp2-7 \
fonts-dejavu-core \
fonts-liberation \
shared-mime-info \
&& rm -rf /var/lib/apt/lists/*
RUN addgroup --system app && \
adduser --system \
--ingroup app \
--home /home/app \
app
COPY --from=builder --chown=app:app /app/.venv /app/.venv
COPY --chown=app:app app ./app
COPY --chown=app:app manage.py .
COPY --chown=app:app alembic ./alembic
COPY --chown=app:app alembic.ini .
COPY --chown=app:app scripts ./scripts
USER app
CMD ["python", "manage.py", "run"]