feat: 添加中间件docker-compose脚本

This commit is contained in:
Ray.Hao
2024-12-25 23:07:16 +08:00
parent 38469fefe5
commit 1ef999306e
7 changed files with 2431 additions and 1 deletions

7
.gitignore vendored
View File

@@ -10,4 +10,9 @@ gen
target
*.log
logs
.history
.history
docker/*/data/
docker/minio/config
docker/xxljob/logs

71
docker/docker-compose.yml Normal file
View File

@@ -0,0 +1,71 @@
version: '3'
# 创建一个名为 "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/mysql8:/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:latest
container_name: minio
restart: unless-stopped
command: server /data --console-address ":9090"
ports:
- 9000:9000
- 9090:9090
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

0
docker/minio/README.md Normal file
View File

41
docker/mysql/conf/my.cnf Normal file
View File

@@ -0,0 +1,41 @@
# 服务端参数配置
[mysqld]
skip-name-resolve
user=mysql # MySQL启动用户
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
character-set-server=utf8mb4 # 设置mysql服务端默认字符集
collation-server = utf8mb4_general_ci # 数据库字符集对应一些排序等规则注意要和character-set-server对应
pid-file = /var/lib/mysql/mysqld.pid # pid文件所在目录
socket = /var/lib/mysql/mysqld.sock # 用于本地连接的socket套接字
datadir = /var/lib/mysql # 数据文件存放的目录
bind-address = 127.0.0.1 # MySQL绑定IP
expire_logs_days= 7 # 定义清除过期日志的时间(这里设置为7天)
# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
# 是否对sql语句大小写敏感1表示不敏感
lower_case_table_names = 1
# 执行sql的模式规定了sql的安全等级, 暂时屏蔽my.cnf文件中配置报错
#sql_mode = STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 事务隔离级别默认为可重复读mysql默认可重复读级别此级别下可能参数很多间隙锁影响性能
transaction_isolation = READ-COMMITTED
# TIMESTAMP如果没有显示声明NOT NULL允许NULL值
explicit_defaults_for_timestamp = true
#它控制着mysqld进程能使用的最大文件描述(FD)符数量。
#需要注意的是这个变量的值并不一定是你设定的值mysqld会在系统允许的情况下尽量获取更多的FD数量
open_files_limit = 65535
# 允许最大连接数
max_connections=200
#最大错误连接数
max_connect_errors = 600
[client]
default-character-set=utf8mb4 # 设置mysql客户端默认字符集

File diff suppressed because it is too large Load Diff

16
docker/run.md Normal file
View File

@@ -0,0 +1,16 @@
# MySQL
## 安装
```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
```

0
docker/xxljob/README.md Normal file
View File