106 lines
3.0 KiB
YAML
106 lines
3.0 KiB
YAML
# 一键编排:CapacityReport 应用 + MySQL + sftpgo
|
||
# 构建前先在仓库根构建前端:cd frontend && npm ci && npm run build(产出 frontend/dist)
|
||
# 然后在本目录:docker compose build && docker compose up -d
|
||
services:
|
||
capacity-app:
|
||
build:
|
||
context: ..
|
||
dockerfile: Dockerfile
|
||
image: capacity-report-app:latest
|
||
container_name: capacity-report-app
|
||
restart: unless-stopped
|
||
ports:
|
||
- "9081:9081"
|
||
volumes:
|
||
- capacity-data:/data
|
||
environment:
|
||
- TZ=Asia/Shanghai
|
||
- PYTHONUNBUFFERED=1
|
||
# 首次启动按以下变量初始化 Configure.json 的连接(用户后续在界面改动不被覆盖)
|
||
- DB_HOST=capacity-mysql
|
||
- DB_PORT=3306
|
||
- DB_USER=root
|
||
- DB_PASSWD=gmcc123
|
||
- MAIN_DB_NAME=CapacityReport
|
||
- CELLDATA_DB_NAME=celldata
|
||
- SFTP_HOST=sftpgo
|
||
- SFTP_PORT=2022
|
||
- SFTP_USER=capacity
|
||
- SFTP_PASSWD=capacity123
|
||
depends_on:
|
||
capacity-mysql:
|
||
condition: service_healthy
|
||
sftpgo:
|
||
condition: service_started
|
||
networks:
|
||
- capacity-network
|
||
|
||
capacity-mysql:
|
||
image: mysql:8.0.44
|
||
container_name: capacity-mysql
|
||
restart: unless-stopped
|
||
ports:
|
||
- "13306:3306"
|
||
volumes:
|
||
- capacity-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
|
||
networks:
|
||
- capacity-network
|
||
healthcheck:
|
||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pgmcc123"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 5
|
||
start_period: 30s
|
||
|
||
sftpgo:
|
||
image: drakkan/sftpgo:v2.7.1
|
||
container_name: capacity-sftpgo
|
||
restart: unless-stopped
|
||
ports:
|
||
- "2022:2022" # SFTP(上传容量/CellData 数据)
|
||
- "18080:8080" # Web 管理后台
|
||
environment:
|
||
- TZ=Asia/Shanghai
|
||
# Web 后台管理员
|
||
- SFTPGO_DEFAULT_ADMIN_USERNAME=admin
|
||
- SFTPGO_DEFAULT_ADMIN_PASSWORD=gmcc123
|
||
# 启动时导入 SFTP 用户(capacity/capacity123);MODE=1 保留文件、每次启动确保用户存在
|
||
- SFTPGO_LOADDATA_FROM=/sftpgo-init.json
|
||
- SFTPGO_LOADDATA_MODE=1
|
||
volumes:
|
||
- sftpgo-config:/var/lib/sftpgo
|
||
- sftpgo-data:/srv/sftpgo/data
|
||
- ./sftpgo/sftpgo-init.json:/sftpgo-init.json:ro
|
||
networks:
|
||
- capacity-network
|
||
|
||
networks:
|
||
capacity-network:
|
||
driver: bridge
|
||
|
||
volumes:
|
||
capacity-mysql-data:
|
||
driver: local
|
||
capacity-data:
|
||
driver: local
|
||
sftpgo-config:
|
||
driver: local
|
||
sftpgo-data:
|
||
driver: local
|