Files
youlai-boot/docker-compose.yml
T

76 lines
2.4 KiB
YAML

# Docker Compose 一键安装中间件 MySQL、Redis、RustFS、Xxl-Job
#
# 安装:docker compose up -d
# 卸载:docker compose down(加 -v 同时删除数据卷)
#
# 说明:
# - name 固定项目名,容器统一管理和卸载,避免与其他项目冲突
# - MySQL 首次启动时自动执行 ./sql 下初始化脚本(仅首次,数据卷已存在时跳过)
# - 中间件配置全部内联于 command 参数,无需外部配置文件
# - 数据持久化使用命名卷(docker volume 统一管理),不污染项目目录
# - RustFS 兼容 MinIO 磁盘格式与 S3 协议(MinIO 社区版已于 2026 年停止维护)
name: youlai-boot
services:
mysql:
image: mysql:8.0.29
container_name: mysql
restart: unless-stopped
# 等价于原 my.cnf 的 utf8mb4 字符集设置(MySQL 8 其余项与默认值一致)
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_0900_ai_ci
environment:
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
- MYSQL_ROOT_PASSWORD=123456
volumes:
- youlai-mysql-data:/var/lib/mysql
- ./sql:/docker-entrypoint-initdb.d
ports:
- 3306:3306
redis:
image: redis:7.2.3
container_name: redis
restart: unless-stopped
# --protected-mode no 允许远程连接(原 redis.conf 唯一非默认项)
command: redis-server --requirepass 123456 --appendonly no --protected-mode no
environment:
- TZ=Asia/Shanghai
volumes:
- youlai-redis-data:/data
ports:
- 6379:6379
rustfs:
image: rustfs/rustfs:latest
container_name: rustfs
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
- RUSTFS_ACCESS_KEY=rustfs-admin
- RUSTFS_SECRET_KEY=rustfs-admin
volumes:
- youlai-rustfs-data:/data
ports:
- 9000:9000
- 9001:9001
xxl-job-admin:
image: xuxueli/xxl-job-admin:2.4.0
container_name: xxl-job-admin
restart: unless-stopped
environment:
PARAMS: '--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=123456 --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver'
volumes:
- youlai-xxljob-logs:/data/applogs
ports:
- 8080:8080
volumes:
youlai-mysql-data:
youlai-redis-data:
youlai-rustfs-data:
youlai-xxljob-logs: