📦 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>
This commit is contained in:
@@ -64,7 +64,9 @@
|
||||
## 3. Docker Compose 端口来源
|
||||
|
||||
当前主部署文件:
|
||||
- [docker-compose.yml](../../docker-compose.yml)
|
||||
- [docker-compose.yml](../../docker-compose.yml)(unified,默认入口)
|
||||
- [docker-compose.moldinsight.yml](../../docker-compose.moldinsight.yml)
|
||||
- [docker-compose.inventory.yml](../../docker-compose.inventory.yml)
|
||||
|
||||
关键端口映射:
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ RUSTFS_SECRET_KEY=minioadmin
|
||||
- `/health` → unified backend
|
||||
- `/html` → unified backend(内部再提供 moldinsight 分析产物)
|
||||
|
||||
如果使用根目录 [docker-compose.yml](../../docker-compose.yml) 的 `frontend` 服务,则该入口已经内置在前端 Nginx 镜像中。
|
||||
如果使用 [docker-compose.yml](../../docker-compose.yml)(unified 模式)的 `frontend` 服务,则该入口已经内置在前端 Nginx 镜像中。
|
||||
|
||||
---
|
||||
|
||||
@@ -199,7 +199,9 @@ celery -A src.celery_app.celery_app worker --loglevel=info
|
||||
如需按模块独立部署,则使用 `moldinsight-only` 或 `inventory-only` 入口;它们仍共享同一个仓库、同一个数据库与同一套基础设施。
|
||||
|
||||
当前入口与部署编排见:
|
||||
- [../../docker-compose.yml](../../docker-compose.yml)
|
||||
- [../../docker-compose.yml](../../docker-compose.yml)(默认 unified)
|
||||
- [../../docker-compose.moldinsight.yml](../../docker-compose.moldinsight.yml)
|
||||
- [../../docker-compose.inventory.yml](../../docker-compose.inventory.yml)
|
||||
- [../../src/entrypoints/unified.py](../../src/entrypoints/unified.py)
|
||||
|
||||
---
|
||||
@@ -398,25 +400,40 @@ curl http://127.0.0.1:8000/health
|
||||
|
||||
## 11. Docker Compose 说明
|
||||
|
||||
当前 [docker-compose.yml](../../docker-compose.yml) 会启动:
|
||||
仓库根目录维护 3 个独立 compose 文件,按文件名映射部署模式:
|
||||
|
||||
- `frontend`
|
||||
- `backend`
|
||||
- `moldinsight-celery`
|
||||
- 可选:`moldinsight` / `inventory`(独立模块模式)
|
||||
| 模式 | Compose 文件 | 一键命令 |
|
||||
|---|---|---|
|
||||
| unified(默认) | [docker-compose.yml](../../docker-compose.yml) | `docker compose up -d` |
|
||||
| moldinsight-only | [docker-compose.moldinsight.yml](../../docker-compose.moldinsight.yml) | `docker compose -f docker-compose.moldinsight.yml up -d` |
|
||||
| inventory-only | [docker-compose.inventory.yml](../../docker-compose.inventory.yml) | `docker compose -f docker-compose.inventory.yml up -d` |
|
||||
|
||||
它**不会**再拉起:
|
||||
每个 service 的 `profiles:` 字段仍在老 `--profile` 命令下生效(双保险):
|
||||
|
||||
| 文件 | 等价 `--profile` 命令 |
|
||||
|---|---|
|
||||
| [docker-compose.yml](../../docker-compose.yml) | `docker compose --profile full up -d` |
|
||||
| [docker-compose.moldinsight.yml](../../docker-compose.moldinsight.yml) | `docker compose --profile moldinsight up -d` |
|
||||
| [docker-compose.inventory.yml](../../docker-compose.inventory.yml) | `docker compose --profile inventory up -d` |
|
||||
|
||||
不同模式分别包含的服务:
|
||||
|
||||
- **unified**:`frontend` + `backend`(unified 入口)+ `moldinsight-celery`
|
||||
- **moldinsight-only**:`moldinsight`(独立 API)+ `moldinsight-celery`
|
||||
- **inventory-only**:仅 `inventory`
|
||||
|
||||
任一 compose 文件**都不会**再拉起:
|
||||
|
||||
- PostgreSQL
|
||||
- Redis
|
||||
- MinIO
|
||||
- MinIO / RustFS
|
||||
|
||||
这些基础设施应由服务器现有服务提供,并通过 `.env` 传入连接信息;前端则由 `frontend` 容器独立提供,并通过同域反代转发到后端。
|
||||
这些基础设施应由服务器现有服务提供,并通过 `.env` 传入连接信息;前端则由 `frontend` 容器独立提供(仅 unified 模式包含),通过同域反代转发到后端。
|
||||
|
||||
示例:
|
||||
镜像构建:
|
||||
|
||||
```bash
|
||||
docker compose --profile full up -d
|
||||
bash deploy/build.sh # base → backend → celery → frontend
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -17,10 +17,12 @@
|
||||
|
||||
对于 Docker Compose 部署,当前主要端口配置来源于:
|
||||
|
||||
- [docker-compose.yml](../../docker-compose.yml)
|
||||
- [docker-compose.yml](../../docker-compose.yml)(unified,默认入口)
|
||||
- [docker-compose.moldinsight.yml](../../docker-compose.moldinsight.yml)
|
||||
- [docker-compose.inventory.yml](../../docker-compose.inventory.yml)
|
||||
- `.env` / `deploy/.env.example`
|
||||
|
||||
注意:该 compose 文件仅负责项目应用容器,不负责 PostgreSQL / Redis / 对象存储容器。
|
||||
注意:这些 compose 文件仅负责项目应用容器,不负责 PostgreSQL / Redis / 对象存储容器。
|
||||
|
||||
核心环境变量:
|
||||
|
||||
@@ -116,7 +118,8 @@ Compose 通过端口映射暴露服务:
|
||||
- inventory → `${INVENTORY_PORT}:8001`
|
||||
|
||||
当前实际定义见:
|
||||
- [docker-compose.yml](../../docker-compose.yml)
|
||||
- [docker-compose.yml](../../docker-compose.yml)(unified / moldinsight-only)
|
||||
- [docker-compose.inventory.yml](../../docker-compose.inventory.yml)(inventory-only 的 `INVENTORY_PORT`)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user