cjw
|
a889671bb5
|
🔧 build(deploy): 取消宿主端口映射的默认值——.env 必须显式配置
三个 compose 文件的 ports 映射去掉 ${VAR:-默认值} 兜底:
- docker-compose.yml: frontend ${FRONTEND_PORT:-10003} → ${FRONTEND_PORT}
- docker-compose.moldinsight.yml: moldinsight ${MOLDINSIGHT_PORT:-10003} → ${MOLDINSIGHT_PORT}
- docker-compose.inventory.yml: inventory ${INVENTORY_PORT:-10004} → ${INVENTORY_PORT}
端口必须由 .env 显式配置,否则 compose 启动期 fail-fast(避免悄悄用了
某个端口导致宿主端口冲突或调试时困惑)。
注:DB_PORT:5432 / REDIS_PORT:6379 等应用行为默认值保留(与"宿主机
端口"不同,属基础设施默认端口,不影响端口暴露策略)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-26 21:00:59 +08:00 |
|
cjw
|
e65dcc2d39
|
🔧 build(deploy): 端口默认值统一 10003/10004——前端入口固定 10003
约定"容器内部端口无所谓,重要的是宿主机端口;前端 = 10003"。
- .env.example 端口段重写:移除冗余 HOST/PORT(uvicorn 命令硬编码,
无人读 env)+ 移除误导注释;FRONTEND_PORT/BACKEND_PORT/MOLDINSIGHT_PORT
默认 10003,INVENTORY_PORT 默认 10004
- docker-compose.yml frontend 默认 80→10003、backend 8000→10003,删除
backend service 内冗余 HOST/PORT env
- docker-compose.moldinsight.yml / docker-compose.inventory.yml 默认
端口同步
- DEPLOY_PORT §3 / PORT_CONFIG §1 §2 端口映射示例同步
- STATUS 补录
验证:yaml 渲染端口映射 unified frontend 10003→80、backend 10003→8000,
moldinsight 10003→8000,inventory 10004→8001。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-26 20:45:38 +08:00 |
|
cjw
|
8f8a7ea00a
|
🐛 fix(deploy): celery worker 启动命令移除 --workdir(celery 5.x 已移除)
部署机实测:celery worker --workdir=/app/src 报
"No such option '--workdir'"(旧 Dockerfile.celery 用的参数,
celery 4.x 兼容,5.x 已删除;项目锁的是新版本)。
修复:compose 的 moldinsight-celery command 改为
cd /app/src && exec celery -A celery_app worker ...
直接切到 src/ 目录启动 worker(celery_app.py 内 include=
["celery_tasks"] 是裸模块名,需在 src/ 下才能解析),不依赖
celery 版本是否支持 --workdir。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-26 20:01:05 +08:00 |
|
cjw
|
2fd1b3da21
|
🐛 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>
|
2026-09-24 16:18:44 +08:00 |
|
cjw
|
4373fafd55
|
🐛 fix(deploy): 移除服务 profiles——裸 up / 裸 -f 恢复一键可用
compose 规则:声明了 profiles 的服务在不带 --profile 时永远不会被选中。
拆分首版保留 profiles(双保险设计)导致部署机实测 docker compose up -d
与 -f <file> up -d 均报 "no service selected",与"一键部署、换文件名换
模式"的核心诉求互斥,故彻底移除:
- 三个 compose 文件的全部 services 去掉 profiles 块,模式切换唯一入口 = -f 文件名
- 历史 --profile full/moldinsight/inventory 写法随之失效(目标服务本就已
移出默认文件,兼容无意义);文档/构建脚本提示/STATUS 日志同步改为失效声明
- frontend/README 移除"仅起前端"用法(前端反代依赖 unified backend,推荐整栈)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-24 16:09:26 +08:00 |
|
cjw
|
a548623ea5
|
📦 build(deploy): Compose 按部署模式拆分三文件——换文件名即换模式一键部署
- docker-compose.yml(unified 默认入口)/ docker-compose.moldinsight.yml / docker-compose.inventory.yml 三文件一一对应三种部署模式,profiles 字段保留(--profile 旧命令双保险可用)
- 修复两个既有部署隐患:moldinsight-only 场景 celery depends_on 悬空;moldinsight service image 统一为 gemold-backend:latest 与 Dockerfile.celery FROM 对齐(废弃 gemold-moldinsight tag)
- gemold_network / uploads_data / html_data 固定 name 命名;inventory-only 不声明卷避免空卷;每文件内 x-base-env anchor 收敛重复 environment(SECRET_KEY/ADMIN_PASSWORD fail-fast 保留)
- 文档同步 11 处:DEPLOYMENT §1.1 一键部署总表 + §2 三模式命令、LINUX_SETUP §6/§11、README、OPERATIONS §4、build.sh/.bat 提示、PORT_CONFIG / DEPLOY_PORT / STORAGE_SETUP / frontend/README
- STATUS.md 补 2026-09-24 批次日志
验证:三文件 YAML 结构静态校验通过;5 个 service environment 键与拆分前逐一比对零丢失(39/39、34/34、39/39、34/34、20/20)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-24 15:28:13 +08:00 |
|