You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.7 KiB
115 lines
3.7 KiB
|
4 months ago
|
# 定义网络配置
|
||
|
|
networks:
|
||
|
|
blade_net:
|
||
|
|
driver: bridge # 使用 bridge 驱动,创建一个桥接网络
|
||
|
|
ipam: # IP 地址管理配置
|
||
|
|
config:
|
||
|
|
- subnet: 172.30.0.0/16 # 定义子网,IP 范围从 172.30.0.0 到 172.30.255.255
|
||
|
|
|
||
|
|
# 定义服务配置
|
||
|
|
services:
|
||
|
|
# BladeX 后端 服务,提供BladeX平台业务功能
|
||
|
|
blade-api:
|
||
|
|
image: blade/blade-api:4.6.0.RELEASE
|
||
|
|
container_name: blade-api
|
||
|
|
restart: unless-stopped
|
||
|
|
environment:
|
||
|
|
# OAuth2 公钥,用于身份验证
|
||
|
|
- BLADE_OAUTH2_PUBLIC_KEY=${BLADE_OAUTH2_PUBLIC_KEY}
|
||
|
|
# OAuth2 私钥,用于验签解码
|
||
|
|
- BLADE_OAUTH2_PRIVATE_KEY=${BLADE_OAUTH2_PRIVATE_KEY}
|
||
|
|
# BladeX 密钥,用于Token签名
|
||
|
|
- BLADE_TOKEN_SIGN_KEY=${BLADE_TOKEN_SIGN_KEY}
|
||
|
|
# 时区设置
|
||
|
|
- TZ=Asia/Shanghai
|
||
|
|
ports:
|
||
|
|
- 8000:80 # 映射 80 端口到主机的 8000 端口
|
||
|
|
command:
|
||
|
|
- --spring.profiles.active=${BLADE_PROFILES_ACTIVE} # 设置系统启动模式
|
||
|
|
- --social.domain=http://${HOST_IP}:2888 # 设置第三方登录跳转域名
|
||
|
|
depends_on:
|
||
|
|
- blade-db # 依赖数据库
|
||
|
|
- blade-oss # 依赖对象存储
|
||
|
|
networks:
|
||
|
|
blade_net:
|
||
|
|
ipv4_address: 172.30.0.80
|
||
|
|
|
||
|
|
# MySQL 数据库服务
|
||
|
|
blade-db:
|
||
|
|
image: mysql:8.3.0
|
||
|
|
container_name: blade-db
|
||
|
|
restart: unless-stopped
|
||
|
|
security_opt:
|
||
|
|
- seccomp:unconfined # 禁用 seccomp 安全配置,允许更多操作
|
||
|
|
environment:
|
||
|
|
- TZ=Asia/Shanghai # 时区设置
|
||
|
|
- MYSQL_CHARSET=utf8mb4 # 设置字符集为 utf8mb4
|
||
|
|
- MYSQL_COLLATION=utf8mb4_unicode_ci # 设置排序规则为 utf8mb4_unicode_ci
|
||
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} # 数据库 root 密码
|
||
|
|
- MYSQL_USER=bladexadmin
|
||
|
|
- MYSQL_PASSWORD=bladexadmin
|
||
|
|
- MYSQL_DATABASE=bladex_boot
|
||
|
|
ports:
|
||
|
|
- 13306:3306 # 映射 MySQL 服务端口
|
||
|
|
volumes:
|
||
|
|
- ./data/mysql:/var/lib/mysql # 持久化 MySQL 数据
|
||
|
|
- ./database/init.sql:/docker-entrypoint-initdb.d/init.sql # 挂载 SQL 初始化脚本
|
||
|
|
command: --lower_case_table_names=1 # 添加忽略大小写配置
|
||
|
|
networks:
|
||
|
|
blade_net:
|
||
|
|
ipv4_address: 172.30.0.33
|
||
|
|
|
||
|
|
# Redis 服务,用于缓存
|
||
|
|
blade-redis:
|
||
|
|
image: redis:7.2.5
|
||
|
|
container_name: blade-redis
|
||
|
|
environment:
|
||
|
|
- TZ=Asia/Shanghai # 时区设置
|
||
|
|
ports:
|
||
|
|
- 16379:6379 # 映射 Redis 默认端口
|
||
|
|
command: redis-server --appendonly yes --requirepass bladexadmin # 配置密码和持久化
|
||
|
|
privileged: true
|
||
|
|
restart: always
|
||
|
|
volumes:
|
||
|
|
- ./data/redis/data:/data # 持久化 Redis 数据
|
||
|
|
networks:
|
||
|
|
blade_net:
|
||
|
|
ipv4_address: 172.30.0.63
|
||
|
|
|
||
|
|
# MinIO 对象存储服务
|
||
|
|
blade-oss:
|
||
|
|
image: minio/minio:RELEASE.2021-04-22T15-44-28Z.hotfix.56647434e
|
||
|
|
container_name: blade-oss
|
||
|
|
restart: unless-stopped
|
||
|
|
security_opt:
|
||
|
|
- seccomp:unconfined
|
||
|
|
environment:
|
||
|
|
- TZ=Asia/Shanghai # 时区设置
|
||
|
|
- MINIO_ACCESS_KEY=bladexadmin # 存储访问密钥
|
||
|
|
- MINIO_SECRET_KEY=bladexadmin # 存储密钥
|
||
|
|
ports:
|
||
|
|
- 9000:9000 # 映射 MinIO 服务端口
|
||
|
|
command: server /data --address '0.0.0.0:9000' # 启动 MinIO
|
||
|
|
volumes:
|
||
|
|
- ./data/minio/data:/data # 持久化数据
|
||
|
|
networks:
|
||
|
|
blade_net:
|
||
|
|
ipv4_address: 172.30.0.90
|
||
|
|
|
||
|
|
# Nginx 服务,用于反向代理和负载均衡
|
||
|
|
blade-nginx:
|
||
|
|
image: nginx:stable-alpine-perl
|
||
|
|
container_name: blade-nginx
|
||
|
|
environment:
|
||
|
|
- TZ=Asia/Shanghai # 时区设置
|
||
|
|
ports:
|
||
|
|
- 2888:2888 # 映射端口
|
||
|
|
volumes:
|
||
|
|
- ./nginx/html:/usr/share/nginx/html # 持久化 Nginx 网页数据
|
||
|
|
- ./nginx/nginx.conf:/etc/nginx/nginx.conf # 持久化 Nginx 配置
|
||
|
|
privileged: true
|
||
|
|
restart: always
|
||
|
|
networks:
|
||
|
|
blade_net:
|
||
|
|
ipv4_address: 172.30.0.18
|