# syntax=docker/dockerfile:1.4 FROM python:3.12-slim # Allow configuring a faster pip index at build time (default: TUNA mirror) ARG PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_INDEX_URL=$PIP_INDEX_URL WORKDIR /app # Copy only requirements first to maximise layer cache COPY requirements.txt ./ # Use BuildKit cache mount for pip to avoid re-downloading wheels between builds. # Build with: DOCKER_BUILDKIT=1 docker build --build-arg PIP_INDEX_URL=... -t ginger . RUN --mount=type=cache,target=/root/.cache/pip \ python -m pip install --upgrade pip setuptools wheel && \ python -m pip install --prefer-binary -r requirements.txt COPY . . EXPOSE 5000 CMD ["uwsgi", "--ini", "/app/uwsgi.ini"]