📦 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:
+18
-5
@@ -9,7 +9,7 @@
|
||||
|
||||
- 配置统一走**环境变量**,代码侧由 [src/shared/config/settings.py](../src/shared/config/settings.py) 的 `Settings` 单例经 `dotenv` + `os.getenv` 读取。
|
||||
- **本地运行**:仓库根 `.env`(`load_dotenv()` 自动加载;不在仓库内,参照 [.env.example](../.env.example) 复制编辑)。
|
||||
- **Compose 运行**:compose 文件用 `${VAR}` 从同目录 `.env` 注入容器环境变量(见 [docker-compose.yml](../docker-compose.yml))。
|
||||
- **Compose 运行**:compose 文件用 `${VAR}` 从同目录 `.env` 注入容器环境变量;按模式对应不同文件名(见 [DEPLOYMENT.md §1.1](DEPLOYMENT.md))。
|
||||
- **键值约定**:
|
||||
- `DB_HOST / DB_PORT / DB_NAME / DB_USER / DB_PASSWORD`:**惰性校验、无代码默认**——缺失时 import 不报错(便于测试/静态分析),真正连库时才失败。生产必须显式配置。
|
||||
- `AUTO_MIGRATE`:应用启动时是否自动执行 alembic 迁移,默认 `true`(单机开发语义);**多副本 / 容器编排部署应设 `false`**,改由部署流程单点执行 `alembic upgrade head` 或 `python -m shared.database.init_db`(迁移脚本已随镜像分发于 `/app/migrations/`)。
|
||||
@@ -78,13 +78,26 @@ npm run gen:api # 从根目录 openapi.json 重新生成 src/types/api.ts(
|
||||
|
||||
## 4. Docker Compose
|
||||
|
||||
按"模式 ↔ 文件名"一一对应:
|
||||
|
||||
```bash
|
||||
docker compose --profile full up -d # frontend + unified backend + moldinsight-celery(推荐)
|
||||
docker compose --profile moldinsight up -d # moldinsight 单模块栈
|
||||
docker compose --profile inventory up -d # inventory 单模块栈
|
||||
# unified(默认;frontend + backend + moldinsight-celery)
|
||||
docker compose up -d
|
||||
# 或(profile 双保险)
|
||||
docker compose --profile full up -d
|
||||
|
||||
# moldinsight-only(moldinsight + moldinsight-celery)
|
||||
docker compose -f docker-compose.moldinsight.yml up -d
|
||||
# 或
|
||||
docker compose --profile moldinsight up -d
|
||||
|
||||
# inventory-only(仅 inventory)
|
||||
docker compose -f docker-compose.inventory.yml up -d
|
||||
# 或
|
||||
docker compose --profile inventory up -d
|
||||
```
|
||||
|
||||
- 镜像构建:`deploy/build.bat` / `deploy/build.sh`(base → 各服务镜像,见 `deploy/Dockerfile.*`)。
|
||||
- 镜像构建:`bash deploy/build.sh`(base → backend → celery → frontend 4 个 tag);首次部署或更新代码后必须先 build 再 `up`。
|
||||
- PostgreSQL / Redis / RustFS 通常**复用服务器已有服务**,不由项目 compose 自带;容器只注入连接配置。
|
||||
|
||||
## 5. 运行时硬性要求
|
||||
|
||||
Reference in New Issue
Block a user