修改文件配置
This commit is contained in:
@@ -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:
|
||||
Reference in New Issue
Block a user