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.
114 lines
3.7 KiB
114 lines
3.7 KiB
# 定义网络配置 |
|
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
|
|
|