修改文件配置

This commit is contained in:
wuweihua
2026-09-24 11:23:14 +08:00
parent 252e177495
commit f602060ab4
62 changed files with 2583 additions and 3506 deletions
+120
View File
@@ -0,0 +1,120 @@
# BMS 全栈 Docker Compose 编排(阿里云 ECS 4C8G)
# 用法:docker compose up -d
# 组件:mysql / redis / elasticsearch / backend / frontend
services:
# ---- MySQL(本机)----
mysql:
image: mysql:8.0
container_name: bms-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${BMS_DB_PASSWORD:-ChangeMe123!} # 生产务必改
MYSQL_DATABASE: bms
TZ: Asia/Shanghai
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --max_connections=200
# 低内存优化
- --innodb-buffer-pool-size=256M
- --performance-schema=OFF
ports:
- "127.0.0.1:3306:3306" # 仅本机,不开公网
volumes:
- bms-mysql-data:/var/lib/mysql
# 首次初始化自动导入建库脚本(可选,脚本按顺序放 init 目录)
- ./init-sql:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-p${BMS_DB_PASSWORD:-ChangeMe123!}"]
interval: 10s
timeout: 5s
retries: 10
# ---- Redis ----
redis:
image: redis:7-alpine
container_name: bms-redis
restart: always
command: ["redis-server", "--appendonly", "yes"]
ports:
- "127.0.0.1:6379:6379" # 仅本机
volumes:
- bms-redis-data:/data
# ---- Elasticsearch(保留,限堆 1G)----
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
container_name: bms-es
restart: always
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1g -Xmx1g # 关键:限堆,否则吃一半内存
- xpack.security.enabled=false # 后端 HTTP 直连无鉴权
- bootstrap.memory_lock=true
ulimits:
memlock:
soft: -1
hard: -1
ports:
- "127.0.0.1:9200:9200" # 仅本机
volumes:
- bms-es-data:/usr/share/elasticsearch/data
healthcheck:
test: ["CMD-SHELL", "curl -s http://localhost:9200 >/dev/null || exit 1"]
interval: 20s
timeout: 5s
retries: 10
# ---- 后端 Spring Boot ----
backend:
build:
context: .. # 指到仓库根目录
dockerfile: deploy/Dockerfile.backend
container_name: bms-backend
restart: always
environment:
TZ: Asia/Shanghai
JAVA_OPTS: "-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"
# 数据源环境变量(后端用 ${} 占位,由这里注入)
BMS_DB_URL: "jdbc:mysql://mysql:3306/bms?useUnicode=true&characterEncoding=utf8&connectionCollation=utf8mb4_unicode_ci&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8"
BMS_DB_USER: root
BMS_DB_PASSWORD: ${BMS_DB_PASSWORD:-ChangeMe123!}
# Oracle 从库(远端只读,保留原值)
BMS_ORACLE_URL: "jdbc:oracle:thin:@//120.79.189.203:15281/WSDB"
BMS_ORACLE_USER: readonly_report
BMS_ORACLE_PASSWORD: ${BMS_ORACLE_PASSWORD:-k5x15WP1hE}
# token 密钥 / Druid 密码
TOKEN_SECRET: ${TOKEN_SECRET:-please-change-me}
DRUID_LOGIN_PASSWORD: ${DRUID_LOGIN_PASSWORD:-ChangeMe456!}
ports:
- "127.0.0.1:8080:8080" # 仅本机,由 frontend 反代
volumes:
- bms-upload:/app/uploadPath
- bms-logs:/app/logs
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_started
elasticsearch:
condition: service_healthy
# ---- 前端 Nginx ----
frontend:
build:
context: .. # 指到仓库根目录
dockerfile: deploy/Dockerfile.frontend
container_name: bms-frontend
restart: always
ports:
- "80:80" # 对外(或改成 443 上 HTTPS)
depends_on:
- backend
volumes:
bms-mysql-data:
bms-redis-data:
bms-es-data:
bms-upload:
bms-logs: