FROM python:3.12-slim AS base ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ UV_LINK_MODE=copy \ PYTHONPATH=/app/src WORKDIR /app RUN pip install --no-cache-dir uv COPY pyproject.toml uv.lock ./ FROM base AS local_test RUN uv sync --all-groups --no-install-project COPY src ./src COPY tests ./tests COPY entrypoint.sh ./entrypoint.sh RUN chmod +x ./entrypoint.sh EXPOSE 8000 ENTRYPOINT ["./entrypoint.sh"] CMD ["http"] FROM base AS production RUN uv sync --no-dev --no-install-project COPY src ./src COPY entrypoint.sh ./entrypoint.sh RUN chmod +x ./entrypoint.sh EXPOSE 8000 ENTRYPOINT ["./entrypoint.sh"] CMD ["http"]