# api 和 worker 共用的镜像(T2:同一套代码、两种进程,T4:同一批镜像两种编排)。 # docker build -f deploy/docker/server.Dockerfile -t bid-doctor-server . # TODO(AR7):私有化交付时核心包用 Nuitka 编译,提示词加密。 FROM python:3.13-slim AS build COPY --from=ghcr.io/astral-sh/uv:0.12.20 /uv /usr/local/bin/uv ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy UV_PROJECT_ENVIRONMENT=/app/.venv WORKDIR /src COPY pyproject.toml uv.lock .python-version ./ COPY server/pyproject.toml server/ RUN uv sync --frozen --no-dev --no-install-workspace --package bid-doctor COPY server server RUN uv sync --frozen --no-dev --package bid-doctor --no-editable FROM python:3.13-slim RUN useradd --system --uid 10001 bd COPY --from=build /app/.venv /app/.venv COPY server/alembic.ini /app/server/alembic.ini COPY server/migrations /app/server/migrations COPY prompts /app/prompts ENV PATH=/app/.venv/bin:$PATH BD_PROMPTS_DIR=/app/prompts PYTHONUNBUFFERED=1 WORKDIR /app/server USER bd EXPOSE 8000 CMD ["bid-doctor", "api", "--host", "0.0.0.0", "--port", "8000"]