chore: 新增第二套独立部署编排

This commit is contained in:
2026-08-05 16:38:57 +08:00
parent 98e51fea26
commit 9675cb2020
2 changed files with 76 additions and 0 deletions
+9
View File
@@ -1094,3 +1094,12 @@ CellData 处理日志细化(`app/services/cell_data.py`):
- 前端 `npm ci && npm run build`(npm registry)。
- 镜像 `pip install -r requirements.txt`(PyPI)+ 基础镜像 `python:3.13.11-slim`(Docker registry;Dockerfile 已注明内网无 dockerhub 时需本地预先存在该镜像)。
- 离线重建可选做法:内网 PyPI/npm 镜像源,或预下载 wheels + `pip install --no-index --find-links`、`npm ci --offline`。
## 2026-08-05:部署第二套独立 CapacityReport 实例
- 新增 `packaging/docker-compose.capacityrepost.yml`,只编排 Web 与 MySQL:容器名固定为 `capacityrepost-web`、`capacityrepost-mysql`。
- Web 发布宿主机 `19082` 到容器 `9081`;MySQL 只 `expose 3306`,不发布宿主机端口,数据导入导出统一走 Web。
- 两个容器仅加入显式桥接网络 `capacityrepost-network`;运行数据使用独立命名卷 `capacityrepost-web-data`、`capacityrepost-mysql-data`,不复用旧实例资源。
- Web 首次启动通过 `DB_HOST=capacityrepost-mysql` 写入新数据卷内的 `Configure.json`;MySQL 初始化独立的 `CapacityReport`、`celldata` 数据库。
- 当前代码镜像使用不可变标签 `capacityrepost-web:a66ce4c`,服务器部署目录为 `/opt/capacityrepost`。健康检查 `GET /health` 已验证应用与 MySQL 均正常,首页可访问。
- 同机旧实例 `capacity-report-app`(19081)与 `capacity-mysql`(13306)是受保护资源;部署第二实例时禁止对旧容器执行停止、重建、改名、改网络、改卷或 compose down。
@@ -0,0 +1,67 @@
services:
web:
image: capacityrepost-web:a66ce4c
container_name: capacityrepost-web
restart: unless-stopped
ports:
- "19082:9081"
volumes:
- capacityrepost-web-data:/data
environment:
TZ: Asia/Shanghai
PYTHONUNBUFFERED: "1"
DB_HOST: capacityrepost-mysql
DB_PORT: "3306"
DB_USER: root
DB_PASSWD: gmcc123
MAIN_DB_NAME: CapacityReport
CELLDATA_DB_NAME: celldata
depends_on:
mysql:
condition: service_healthy
networks:
- capacityrepost-network
mysql:
image: capacity-mysql:8.0.44
container_name: capacityrepost-mysql
restart: unless-stopped
expose:
- "3306"
volumes:
- capacityrepost-mysql-data:/var/lib/mysql
- ./mysql/conf.d:/etc/mysql/conf.d:ro
- ./mysql/init:/docker-entrypoint-initdb.d:ro
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: gmcc123
MYSQL_DATABASE: CapacityReport
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --local-infile=ON
- --secure-file-priv=
- --max_allowed_packet=256M
- --innodb_buffer_pool_size=512M
- --innodb_log_file_size=128M
- --innodb_flush_log_at_trx_commit=2
- --sync_binlog=0
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pgmcc123"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
networks:
- capacityrepost-network
networks:
capacityrepost-network:
name: capacityrepost-network
driver: bridge
volumes:
capacityrepost-web-data:
name: capacityrepost-web-data
capacityrepost-mysql-data:
name: capacityrepost-mysql-data