Files
bid-doctor/deploy/docker/server.Dockerfile
YANG JIANKUAN ad7fba6021 feat(server): 工程骨架后端——上传 → 解析 → 清单最小链路
- core:配置(prod 拒绝默认密钥 / dev 短信 / 假模型)、租户事务 + 行级安全策略、
  problem+json 错误码、信封加密与签名下载、对象存储、事务内入队、Valkey stream 事件流、权限点
- identity:手机号 HMAC 存储、注册、登录(挤下线需确认,API3)、服务端会话
- billing:额度流水只追加,预扣 / 结算 / 退回,一笔预扣只有一个结局
- document:分片上传、按文件头识别格式、Gotenberg 转换、文字层与稳定句子编号
- checklist:标注规则识别、模型抽取、三道校验、标注类条款规则兜底、重跑对齐
- ai:提示词注册表(extract.substantive v1 来自 S4 v2)、假模型、OpenAI 兼容供应商、ai_call 流水
- 迁移:data-model 基线、套餐、Procrastinate、会话状态函数
- 测试 30 个:租户隔离、额度、失败退回、对象加密、契约一致性
- Compose(含 migrate)、镜像、CI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 18:48:10 +08:00

25 lines
1.1 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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"]