add 增加 docker 编排 与 shell 脚本

This commit is contained in:
疯狂的狮子li 2021-07-06 13:48:06 +08:00
parent 61e2a60438
commit 80e74eb91c
2 changed files with 178 additions and 0 deletions

84
docker/deploy.sh Normal file
View File

@ -0,0 +1,84 @@
#!/bin/bash
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [port|mount|base|start|stop|stopall|rm|rmiNoneTag]"
exit 1
}
#开启所需端口
port(){
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --add-port=6379/tcp --permanent
service firewalld restart
}
##放置挂载文件
mount(){
#挂载配置文件
if test ! -f "/docker/nginx/nginx.conf" ;then
mkdir -p /docker/nginx
cp nginx/nginx.conf /docker/nginx/nginx.conf
fi
}
#启动基础模块
base(){
docker-compose up -d mysql nginx-web redis
}
#启动程序模块
start(){
docker-compose up -d ruoyi-admin
}
#停止程序模块
stop(){
docker-compose stop ruoyi-admin
}
#关闭所有模块
stopall(){
docker-compose stop
}
#删除所有模块
rm(){
docker-compose rm
}
#删除Tag为空的镜像
rmiNoneTag(){
docker images|grep none|awk '{print $3}'|xargs docker rmi -f
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"port")
port
;;
"mount")
mount
;;
"base")
base
;;
"start")
modules
;;
"stop")
stopmodules
;;
"stopall")
stop
;;
"rm")
rm
;;
"rmiNoneTag")
rmiNoneTag
;;
*)
usage
;;
esac

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

@ -0,0 +1,94 @@
version: '3'
services:
mysql:
image: mysql:8.0.24
container_name: mysql
environment:
# 时区上海
TZ: Asia/Shanghai
# root 密码
MYSQL_ROOT_PASSWORD: root
# 初始化数据库(后续的初始化sql会在这个库执行)
MYSQL_DATABASE: ry-vue
ports:
- 3306:3306
volumes:
# 数据挂载
- /docker/mysql/data/:/var/lib/mysql/
# 配置挂载
- /docker/mysql/conf/:/etc/mysql/conf.d/
# 初始化目录挂载
- /docker/mysql/init/:/docker-entrypoint-initdb.d/
command:
# 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
privileged: true
restart: always
networks:
ruoyi_net:
ipv4_address: 172.30.0.36
nginx-web:
# 如果需要指定版本 就把 latest 换成版本号
image: nginx:latest
container_name: nginx-web
ports:
- 80:80
- 443:443
volumes:
# 证书映射
- /docker/nginx/cert:/etc/nginx/cert
# 配置文件映射
- /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
# 页面目录
- /docker/nginx/html:/usr/share/nginx/html
# 日志目录
- /docker/nginx/log:/var/log/nginx
# 主机本机时间文件映射 与本机时间同步
- /etc/localtime:/etc/localtime:ro
privileged: true
restart: always
networks:
- ruoyi_net
redis:
image: redis:6.0.9
container_name: redis
ports:
- 6379:6379
environment:
# 设置环境变量 时区上海 编码UTF-8
TZ: Asia/Shanghai
LANG: en_US.UTF-8
volumes:
# 配置文件
- /docker/redis/conf/redis.conf:/redis.conf:rw
# 数据文件
- /docker/redis/data:/data:rw
command: "redis-server --appendonly yes"
privileged: true
restart: always
networks:
ruoyi_net:
ipv4_address: 172.30.0.48
ruoyi-admin:
image: "${REGISTER}/ruoyi-admin:${TAG}"
environment:
- TZ=Asia/Shanghai
privileged: true
restart: always
networks:
- ruoyi_net
networks:
ruoyi_net:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/16