a548623ea5
- 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>
3.6 KiB
3.6 KiB
端口配置说明(模块化架构)
文档定位:模块化部署下的端口与环境变量配置补充说明。 当前部署主题入口见 ../DEPLOYMENT.md,详细 Linux 部署步骤见 LINUX_SETUP.md。 本文只补充环境变量、端口配置项与 direct run / compose 的映射;端口规划与对外暴露方式以 DEPLOY_PORT.md 为准。
当前配置中主要需要区分:
- moldinsight API 端口
- inventory API 端口
- 数据库 / Redis / 对象存储端口
- 前端访问地址
1. 当前主配置位置
对于 Docker Compose 部署,当前主要端口配置来源于:
- docker-compose.yml(unified,默认入口)
- docker-compose.moldinsight.yml
- docker-compose.inventory.yml
.env/deploy/.env.example
注意:这些 compose 文件仅负责项目应用容器,不负责 PostgreSQL / Redis / 对象存储容器。
核心环境变量:
FRONTEND_PORT=80
BACKEND_PORT=8000
MOLDINSIGHT_PORT=8000
INVENTORY_PORT=8001
其余基础设施通常为:
DB_PORT=5432
REDIS_PORT=6379
对象存储常见端口(由服务器既有服务提供):
RUSTFS_ENDPOINT=http://localhost:9000
2. 各端口的含义
| 变量 / 端口 | 用途 |
|---|---|
FRONTEND_PORT |
前端 Nginx 宿主机暴露端口 |
BACKEND_PORT |
unified backend 宿主机暴露端口 |
MOLDINSIGHT_PORT |
moldinsight-only 独立部署端口 |
INVENTORY_PORT |
inventory-only 独立部署端口 |
DB_PORT |
PostgreSQL 端口 |
REDIS_PORT |
Redis 端口 |
9000 |
MinIO/RustFS S3 兼容 API |
9001 |
MinIO 控制台 |
3. 推荐配置方式
3.1 moldinsight-only
MOLDINSIGHT_PORT=8000
DB_PORT=5432
REDIS_PORT=6379
3.2 inventory-only
INVENTORY_PORT=8001
DB_PORT=5432
REDIS_PORT=6379
3.3 full / 模块同时部署
MOLDINSIGHT_PORT=8000
INVENTORY_PORT=8001
DB_PORT=5432
REDIS_PORT=6379
4. direct run 与 Compose 的映射
通过直接运行或 Docker Compose 部署时,端口含义保持一致,但映射方式不同。
direct run
moldinsight:
uvicorn src.entrypoints.moldinsight:app --port 8000
inventory:
uvicorn src.entrypoints.inventory:app --port 8001
Docker Compose
Compose 通过端口映射暴露服务:
- moldinsight →
${MOLDINSIGHT_PORT}:8000 - inventory →
${INVENTORY_PORT}:8001
当前实际定义见:
- docker-compose.yml(unified / moldinsight-only)
- docker-compose.inventory.yml(inventory-only 的
INVENTORY_PORT)
5. 与前端配置的关系
前端是否使用 unified / split deployment,会影响前端 API 地址配置。
unified
- 一个 API 基地址
split
- moldinsight 与 inventory 各自基地址
因此,修改后端端口后,可能还需要同步:
- 前端
.env - Nginx 反向代理
- 浏览器访问地址
6. 推荐实践
-
本地开发
- moldinsight:8000
- inventory:8001
-
服务器部署
- 外网只暴露 80/443
- Nginx 反代到 8000 / 8001
-
修改端口后,同步检查
.env、Compose 端口映射、前端环境变量与反向代理配置