🐛 fix(deploy): 修干净机器首次构建两处必挂——.dockerignore 排除 deploy/ + celery 并行构建依赖
部署机首次 docker compose up -d 实测暴露: - .dockerignore 自"重写独立dockerfile"起排除整个 deploy/,而 Dockerfile.frontend COPY deploy/nginx/frontend.conf、Dockerfile.moldinsight COPY deploy/requirements-*.txt → COPY not found。历史一直有旧镜像兜底未暴露; BuildKit 不支持重包含被排除目录的子文件,直接移除该行 - Dockerfile.celery FROM gemold-backend:latest 在 compose 并行构建下引用 尚不存在的本地镜像必挂 → 删除 Dockerfile.celery,moldinsight-celery 改为 与 API 服务同一 build 声明 + 同一 gemold-backend:latest tag(compose 去重 只构建一次),celery 仅以 command: 覆盖启动 worker,参数语义不变 - build.sh/.bat 移除 gemold-celery 构建步骤;OPERATIONS / OCC_THROUGHPUT / TECH_DEBT / .env.example 的 Dockerfile.celery 指向同步改写;STATUS 补录 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
# Celery Worker 与 unified 后端共用同一运行时镜像(自包含,批次 1 起)。
|
||||
# 此前 FROM gemold-moldinsight:latest 与 compose/build.sh 构建的
|
||||
# gemold-backend:latest 不一致,干净环境下 celery 镜像构建必然失败。
|
||||
FROM gemold-backend:latest
|
||||
|
||||
# OCC 并行度伸缩(OCC_THROUGHPUT 方案 A,见 docs/topics/performance/OCC_THROUGHPUT.md):
|
||||
# 每个 prefork 子进程各持一个串行 OCC 通道,concurrency 即并行分析数
|
||||
# (调大时预算好每子进程内存与 PG 连接数);max-tasks-per-child 让子进程
|
||||
# 定期重启,兜底回收 OCC 超时后滞留的线程。可在 compose/.env 覆盖。
|
||||
ENV CELERY_CONCURRENCY=2 \
|
||||
CELERY_MAX_TASKS_PER_CHILD=50
|
||||
|
||||
# sh -c + exec:既支持环境变量替换,又让 celery exec 接管 PID 1 正确接收 SIGTERM
|
||||
CMD ["sh", "-c", "exec celery -A celery_app worker --workdir=/app/src --concurrency=${CELERY_CONCURRENCY:-2} --max-tasks-per-child=${CELERY_MAX_TASKS_PER_CHILD:-50} --loglevel=info"]
|
||||
@@ -11,11 +11,6 @@ echo.
|
||||
echo === 构建统一后端镜像 ===
|
||||
docker build -t gemold-backend:latest -f deploy\Dockerfile.moldinsight .
|
||||
|
||||
echo.
|
||||
echo === 构建 Celery Worker 镜像 ===
|
||||
docker build -t gemold-celery:latest -f deploy\Dockerfile.celery .
|
||||
|
||||
echo.
|
||||
echo.
|
||||
echo === 构建前端镜像 (Nginx 静态站点) ===
|
||||
docker build -t gemold-frontend:latest -f deploy\Dockerfile.frontend .
|
||||
|
||||
@@ -13,10 +13,6 @@ echo ""
|
||||
echo "=== 构建统一后端镜像 ==="
|
||||
docker build -t gemold-backend:latest -f deploy/Dockerfile.moldinsight .
|
||||
|
||||
echo ""
|
||||
echo "=== 构建 Celery Worker 镜像 ==="
|
||||
docker build -t gemold-celery:latest -f deploy/Dockerfile.celery .
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo "=== 构建前端镜像 (Nginx 静态站点) ==="
|
||||
|
||||
Reference in New Issue
Block a user