chore: 新增第二套独立部署编排
This commit is contained in:
@@ -1094,3 +1094,12 @@ CellData 处理日志细化(`app/services/cell_data.py`):
|
|||||||
- 前端 `npm ci && npm run build`(npm registry)。
|
- 前端 `npm ci && npm run build`(npm registry)。
|
||||||
- 镜像 `pip install -r requirements.txt`(PyPI)+ 基础镜像 `python:3.13.11-slim`(Docker registry;Dockerfile 已注明内网无 dockerhub 时需本地预先存在该镜像)。
|
- 镜像 `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`。
|
- 离线重建可选做法:内网 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
|
||||||
Reference in New Issue
Block a user