FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/* WORKDIR /app ARG GIT_TOKEN="" RUN if [ -n "$GIT_TOKEN" ]; then \ git config --global url."https://gitea.ext.ben.io/".insteadOf "ssh://gitea@git.local.ben.io/" && \ git config --global --add url."https://gitea.ext.ben.io/".insteadOf "ssh://git.local.ben.io/" && \ echo "machine gitea.ext.ben.io login b3nw password ${GIT_TOKEN}" > /root/.netrc && \ chmod 600 /root/.netrc; \ fi COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev --no-install-project COPY . . RUN uv sync --frozen --no-dev FROM python:3.12-slim-bookworm RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy the environment from the builder COPY --from=builder /app /app # Set up environment variables ENV PATH="/app/.venv/bin:$PATH" ENV PORT=8000 # Expose the port EXPOSE 8000 # Run the server CMD ["python", "server.py"]