refactor: 移除 docker 目录,中间件编排收敛至根目录 docker-compose.yml
- docker-compose.yml 移至根目录,my.cnf/redis.conf 配置内联为 command 参数,数据持久化改用命名卷 - 删除 docker/ 目录(含运行时残留数据),清理 .gitignore 相关规则 - 同步 README 目录结构说明
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -12,8 +12,4 @@ target
|
||||
logs
|
||||
.history
|
||||
|
||||
|
||||
docker/*/data/
|
||||
docker/minio/config
|
||||
docker/xxljob/logs
|
||||
application-youlai.yml
|
||||
|
||||
@@ -201,8 +201,6 @@ Detailed guide: https://www.youlai.tech/docs/server/spring-boot/quick-start.html
|
||||
|
||||
youlai-boot/
|
||||
|
||||
├── docker/ # Docker orchestration
|
||||
|
||||
├── docs/ # Docs and image assets
|
||||
|
||||
├── sql/ # Database init scripts
|
||||
@@ -237,6 +235,8 @@ youlai-boot/
|
||||
|
||||
│ └── system/ # Business (user/role/menu/dept/dict etc.)
|
||||
|
||||
├── docker-compose.yml # One-click middleware orchestration (MySQL/Redis/MinIO/Xxl-Job)
|
||||
|
||||
└── pom.xml # Maven dependency management
|
||||
|
||||
```
|
||||
|
||||
@@ -107,7 +107,6 @@
|
||||
|
||||
```
|
||||
youlai-boot/
|
||||
├── docker/ # Docker 部署编排
|
||||
├── docs/ # 项目文档与图片资源
|
||||
├── sql/ # 数据库初始化脚本
|
||||
├── src/ # 源码目录
|
||||
@@ -125,6 +124,7 @@ youlai-boot/
|
||||
│ │ ├── sms/ # 短信服务
|
||||
│ │ └── sse/ # SSE 消息推送
|
||||
│ └── system/ # 系统业务(用户/角色/菜单/部门/字典等)
|
||||
├── docker-compose.yml # 中间件一键编排(MySQL/Redis/MinIO/Xxl-Job)
|
||||
└── pom.xml # Maven 依赖管理
|
||||
```
|
||||
|
||||
|
||||
75
docker-compose.yml
Normal file
75
docker-compose.yml
Normal file
@@ -0,0 +1,75 @@
|
||||
# Docker Compose 一键安装中间件 MySQL、Redis、MinIO、Xxl-Job
|
||||
#
|
||||
# 安装:docker compose up -d
|
||||
# 卸载:docker compose down(加 -v 同时删除数据卷)
|
||||
#
|
||||
# 说明:
|
||||
# - name 固定项目名,容器统一管理和卸载,避免与其他项目冲突
|
||||
# - MySQL 首次启动时自动执行 ./sql 下初始化脚本(仅首次,数据卷已存在时跳过)
|
||||
# - 中间件配置全部内联于 command 参数,无需外部配置文件
|
||||
# - 数据持久化使用命名卷(docker volume 统一管理),不污染项目目录
|
||||
|
||||
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
|
||||
|
||||
minio:
|
||||
image: minio/minio:RELEASE.2024-07-16T23-46-41Z
|
||||
container_name: minio
|
||||
restart: unless-stopped
|
||||
command: server /data --console-address ":9001"
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- LANG=en_US.UTF-8
|
||||
- MINIO_ROOT_USER=minioadmin
|
||||
- MINIO_ROOT_PASSWORD=minioadmin
|
||||
volumes:
|
||||
- youlai-minio-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-minio-data:
|
||||
youlai-xxljob-logs:
|
||||
@@ -1,69 +0,0 @@
|
||||
# 创建一个名为 "youlai-boot" 的桥接网络,在同一个网络中的容器可以通过容器名互相访问
|
||||
networks:
|
||||
youlai-boot:
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:8.0.29
|
||||
container_name: mysql
|
||||
restart: unless-stopped # 重启策略:除非手动停止容器,否则自动重启
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- LANG= en_US.UTF-8
|
||||
- MYSQL_ROOT_PASSWORD=123456 #设置 root 用户的密码
|
||||
volumes:
|
||||
- ./mysql/conf/my.cnf:/etc/my.cnf # 挂载 my.cnf 文件到容器的指定路径
|
||||
- ./mysql/data:/var/lib/mysql # 持久化 MySQL 数据
|
||||
- ../sql:/docker-entrypoint-initdb.d # 初始化 SQL 脚本目录
|
||||
ports:
|
||||
- 3306:3306
|
||||
networks:
|
||||
- youlai-boot # 加入 "youlai-boot" 网络
|
||||
|
||||
redis:
|
||||
image: redis:7.2.3
|
||||
container_name: redis
|
||||
restart: unless-stopped
|
||||
command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no # 启动 Redis 服务并添加密码为:123456,默认不开启 Redis AOF 方式持久化配置
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./redis/data:/data
|
||||
- ./redis/config/redis.conf:/etc/redis/redis.conf
|
||||
ports:
|
||||
- 6379:6379
|
||||
networks:
|
||||
- youlai-boot
|
||||
|
||||
minio:
|
||||
image: minio/minio:RELEASE.2024-07-16T23-46-41Z
|
||||
container_name: minio
|
||||
restart: unless-stopped
|
||||
command: server /data --console-address ":9001"
|
||||
ports:
|
||||
- 9000:9000
|
||||
- 9001:9001
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- LANG=en_US.UTF-8
|
||||
- MINIO_ROOT_USER=minioadmin
|
||||
- MINIO_ROOT_PASSWORD=minioadmin
|
||||
volumes:
|
||||
- ./minio/data:/data
|
||||
- ./minio/config:/root/.minio
|
||||
networks:
|
||||
- youlai-boot
|
||||
|
||||
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:
|
||||
- ./xxljob/logs:/data/applogs
|
||||
ports:
|
||||
- 8080:8080
|
||||
networks:
|
||||
- youlai-boot
|
||||
@@ -1,20 +0,0 @@
|
||||
|
||||
|
||||
[mysqld]
|
||||
# 字符集与排序规则
|
||||
character-set-server = utf8mb4 # 服务端默认字符集
|
||||
collation-server = utf8mb4_0900_ai_ci # 服务端默认排序规则
|
||||
|
||||
# 网络与路径
|
||||
datadir = /var/lib/mysql # 数据文件存放的目录
|
||||
bind-address = 0.0.0.0 # 允许远程连接,默认 127.0.0.1 只允许本地连接
|
||||
port = 3306 # 显式指定端口(默认3306可不写)
|
||||
|
||||
# 客户端字符集同步(避免乱码)
|
||||
init_connect = 'SET NAMES utf8mb4' # 连接初始化时设置字符集
|
||||
|
||||
[client]
|
||||
default-character-set = utf8mb4 # 客户端默认字符集
|
||||
|
||||
[mysql]
|
||||
default-character-set = utf8mb4 # MySQL 命令行工具字符集
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,16 +0,0 @@
|
||||
|
||||
# Docker Compose 安装中间件 MySQL、Redis、Minio、Xxl-Job
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
docker-compose -f ./docker-compose.yml -p youlai-boot up -d
|
||||
```
|
||||
|
||||
- p youlai-boot 指定命名空间,避免与其他容器冲突,这里方便管理,统一管理和卸载
|
||||
|
||||
## 卸载
|
||||
```bash
|
||||
docker-compose -f ./docker-compose.yml -p youlai-boot down
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user