cjw
|
3615902e8d
|
fix(deploy): .env 显式写 BACKEND_PORT=(空值),backend 不再随机分配宿主机端口
|
2026-09-26 21:14:19 +08:00 |
|
cjw
|
f0110df164
|
🔧 build(deploy): .env / .env.example 补 FRONTEND_PORT=10003 + 端口段重写
部署机实测:docker compose up -d --build 报
WARN[0000] The "FRONTEND_PORT" variable is not set. Defaulting to a blank string.
根因:之前所有 compose 端口相关 commit 只改 .env.example,未同步 .env;
服务器 .env 缺失 FRONTEND_PORT 与 BACKEND_PORT,前端容器端口因此暴露到
docker 自动分配的 32769,backend 暴露到 32770。
修复:
- .env 端口段补全:FRONTEND_PORT=10003 + BACKEND_PORT(注释留空)
- .env.example 端口段重写:与 .env 对齐,强化 DEPLOYMENT.md §1.2 选择 A
约定(前端独占宿主端口、backend 不暴露)
- 移除冗余的 HOST/PORT(uvicorn compose 命令硬编码 8000/8001,
直跑场景由 --host/--port 控制;env 注入未读取,删除减少心智负担)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-26 21:11:03 +08:00 |
|
cjw
|
aaf887507f
|
🐛 fix(deploy): backend 宿主机端口受 .env BACKEND_PORT 控制
上一版 backend 写死 expose: ["8000"](不暴露宿主),但这违背"全局服
务的最终映射到宿主机只能受 .env 中的端口配置决定"的原则——调试场景下
.env 没办法把 backend 暴露到宿主。
修正:backend ports 改为 "${BACKEND_PORT:-}:8000",由 .env 决定:
- BACKEND_PORT 留空/未设 = 不暴露宿主端口(仅经前端 /api 反代)
- BACKEND_PORT=10003 = 暴露宿主 10003(调试 / 压测用)
.env.example 同步加注释说明。
验证:模拟 .env 两种场景下,端口映射完全由 BACKEND_PORT 决定。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-26 20:58:10 +08:00 |
|
cjw
|
b934b737e8
|
🐛 fix(deploy): 修 unified backend 与 frontend 抢占宿主 10003 冲突
上一版把 frontend 与 backend 都映射 10003:8000,会触发 docker 启动时
"bind: address already in use"。修正:
- docker-compose.yml backend ports 改为 expose: ["8000"]——不映射宿主机,
仅在 docker 网络 gemold_network 内被 frontend 经 backend:8000 反代访问
- .env.example 删除 BACKEND_PORT 字段(不再需要)
- PORT_CONFIG / DEPLOY_PORT 端口映射表/示例同步:unified backend 不暴露
宿主机端口,统一经前端 /api 反代
验证:yaml 渲染后无任何 service 对抢宿主端口(unified 仅 frontend 暴露
$FRONTEND_PORT=10003;moldinsight-only 仅 moldinsight 暴露 10003;
inventory-only 仅 inventory 暴露 10004)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-26 20:56:20 +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
|
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
|
e728dcd226
|
批次4后续专项完成:D11清偿 + OCC方案B实施 + 部署参数 + D2诚实标注 + CI门禁
① D11 HTML 报告 RustFS 单源化(TECH_DEBT P2 清偿):可视化产物写任务临时目录后
裸传报告键 html/reports/{filename}(文件名寻址),/html StaticFiles 挂载删除,
新增 html_report_router 根路径代理(报告键→遗留 JSON 包装→本地卷兜底→404,
防穿越);URL 形状 /html/{filename} 不变,持久化引用零迁移;celery 摘除
html_data 卷,镜像不再烤入陈旧报告;顺带删除 get_stp_file_with_data 死数据块
② OCC 方案 B(D10 清偿):run_occ(op_name, payload) 契约 + 常驻工作进程池
(occ_process_pool + occ_worker 操作注册表),超时/崩溃 terminate 换新补位、
任务级超时 recover 整体重建,残留线程泄漏根治;TopoDS 不跨进程(generate_cavity
分模 + 方案 STEP 持久化全在子进程内,返回 export_manifest);删除内存形状缓存链、
CADExporter.export_mold_results、shape_loader(→ stp_materializer)
③ OCC 方案 A 部署参数:CELERY_CONCURRENCY / CELERY_MAX_TASKS_PER_CHILD 进
Dockerfile.celery + compose + .env.example
④ D2 诚实标注:铝价响应带 source: "simulated",前端按来源渲染标注(原硬编码
"上海期货交易所"属虚假声明),死代码 getAluminumPrice 删除
⑤ CI 门禁:.gitea/workflows/ci.yml 三 job(pytest / 前端构建含 vue-tsc /
openapi 漂移检测)
接口变更三件套随批完成(openapi 76→77 paths + gen:api + 前端构建通过;方案 B
接口面零变化)。测试基线 143 passed, 0 skipped(新增 16 项)。文档六处同步。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-18 17:22:01 +08:00 |
|
cjw
|
4537faf2c4
|
优化
|
2026-09-16 17:55:04 +08:00 |
|
cjw
|
bee439cf34
|
x
|
2026-08-31 18:01:34 +08:00 |
|
cjw
|
3ea59551db
|
模块拆分 init
|
2026-08-27 14:53:22 +08:00 |
|
cjw
|
853c478657
|
xxx
|
2026-07-30 10:30:50 +08:00 |
|
cjw
|
a68b9ca57f
|
x
|
2026-05-11 11:35:15 +08:00 |
|
cjw
|
ef257e7120
|
init
|
2026-04-19 23:41:35 +08:00 |
|
cjw
|
1bdc75cee2
|
init
|
2026-03-08 22:58:25 +08:00 |
|
cjw
|
aa1c91b818
|
init
|
2026-02-13 00:29:12 +08:00 |
|
cjw
|
7b09eb3d89
|
init
|
2026-02-12 23:27:42 +08:00 |
|