From 80e74eb91c08fc1d774d1274323546d5ce592455 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 06 七月 2021 13:48:06 +0800
Subject: [PATCH] add 增加 docker 编排 与 shell 脚本

---
 docker/docker-compose.yml |   94 +++++++++++++++++++++++++++++++
 docker/deploy.sh          |   84 ++++++++++++++++++++++++++++
 2 files changed, 178 insertions(+), 0 deletions(-)

diff --git a/docker/deploy.sh b/docker/deploy.sh
new file mode 100644
index 0000000..bbfdaf4
--- /dev/null
+++ b/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
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
new file mode 100644
index 0000000..0da3032
--- /dev/null
+++ b/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:
+      # 灏唌ysql8.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

--
Gitblit v1.9.3