Files
crm_project/Dockerfile.backend
T
hankin 423baff73b v0.1.0: CRM/ERP 系统内测版本 - 安全加固完成
- Docker bridge 网络隔离(8000 端口封死)
- Gunicorn 4 Worker 多进程
- Alembic 数据库迁移基线
- 日志轮转 20m×3
- JWT 密钥 + DB 密码 + CORS 收紧
- 3-2-1 备份链路(NAS + R740-B 冷备)
- 连接池 pool_pre_ping + pool_recycle=3600
2026-03-16 07:31:37 +00:00

30 lines
888 B
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.
FROM python:3.12-slim
WORKDIR /app
# 系统依赖(asyncpg 编译需要 gcc
RUN apt-get update \
&& apt-get install -y --no-install-recommends gcc libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# 先拷贝依赖清单,利用 Docker 层缓存
COPY server/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 拷贝全部后端代码
COPY server/ .
EXPOSE 8000
# 生产模式:Gunicorn 多进程管理 + UvicornWorker 异步处理
# -w 4: 4 个 Worker 进程充分利用多核
# --timeout 600: 兼容 AI SSE 流式长请求
# --graceful-timeout 30: 平滑重启时等待旧连接结束
CMD ["gunicorn", "app.main:app", \
"-k", "uvicorn.workers.UvicornWorker", \
"-w", "4", \
"--bind", "0.0.0.0:8000", \
"--timeout", "600", \
"--graceful-timeout", "30", \
"--access-logfile", "-"]