浏览代码

add 增加 docker 编排 与 shell 脚本

疯狂的狮子li 3 年之前
父节点
当前提交
80e74eb91c
共有 2 个文件被更改,包括 178 次插入0 次删除
  1. 84 0
      docker/deploy.sh
  2. 94 0
      docker/docker-compose.yml

+ 84 - 0
docker/deploy.sh

@@ -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 - 0
docker/docker-compose.yml

@@ -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