Ver código fonte

添加docker支持

RuoYi 4 anos atrás
pai
commit
63d7e816ff

+ 65 - 0
docker/deploy.sh

@@ -0,0 +1,65 @@
1
+#!/bin/sh
2
+
3
+# 使用说明,用来提示输入参数
4
+usage() {
5
+	echo "Usage: sh 执行脚本.sh [port|base|modules|stop|rm]"
6
+	exit 1
7
+}
8
+
9
+# 开启所需端口
10
+port(){
11
+	firewall-cmd --add-port=80/tcp --permanent
12
+	firewall-cmd --add-port=8080/tcp --permanent
13
+	firewall-cmd --add-port=8848/tcp --permanent
14
+	firewall-cmd --add-port=6379/tcp --permanent
15
+	firewall-cmd --add-port=3306/tcp --permanent
16
+	firewall-cmd --add-port=9100/tcp --permanent
17
+	firewall-cmd --add-port=9200/tcp --permanent
18
+	firewall-cmd --add-port=9201/tcp --permanent
19
+	firewall-cmd --add-port=9202/tcp --permanent
20
+	firewall-cmd --add-port=9203/tcp --permanent
21
+	firewall-cmd --add-port=9300/tcp --permanent
22
+	service firewalld restart
23
+}
24
+
25
+# 启动基础环境(必须)
26
+base(){
27
+	docker-compose up -d ruoyi-mysql ruoyi-redis ruoyi-nacos ruoyi-nginx
28
+}
29
+
30
+# 启动程序模块(必须)
31
+modules(){
32
+	docker-compose up -d ruoyi-gateway ruoyi-auth ruoyi-modules-system
33
+}
34
+
35
+# 关闭所有环境/模块
36
+stop(){
37
+	docker-compose stop
38
+}
39
+
40
+# 删除所有环境/模块
41
+rm(){
42
+	docker-compose rm
43
+}
44
+
45
+# 根据输入参数,选择执行对应方法,不输入则执行使用说明
46
+case "$1" in
47
+"port")
48
+	port
49
+;;
50
+"base")
51
+	base
52
+;;
53
+"modules")
54
+	modules
55
+;;
56
+"stop")
57
+	stop
58
+;;
59
+"rm")
60
+	rm
61
+;;
62
+*)
63
+	usage
64
+;;
65
+esac

+ 138 - 0
docker/docker-compose.yml

@@ -0,0 +1,138 @@
1
+version : '3'
2
+services:
3
+  ruoyi-nacos:
4
+    container_name: ruoyi-nacos
5
+    image: nacos/nacos-server
6
+    build:
7
+      context: ./nacos
8
+    environment:
9
+      - MODE=standalone
10
+    volumes:
11
+      - ./nacos/logs/:/home/nacos/logs
12
+      - ./nacos/conf/application.properties:/home/nacos/conf/application.properties
13
+    ports:
14
+      - "8848:8848"
15
+    depends_on:
16
+      - ruoyi-mysql
17
+  ruoyi-mysql:
18
+    container_name: ruoyi-mysql
19
+    image: mysql:5.7
20
+    build:
21
+      context: ./mysql
22
+    ports:
23
+      - "3306:3306"
24
+    volumes:
25
+      - ./mysql/conf:/etc/mysql/conf.d
26
+      - ./mysql/logs:/logs
27
+      - ./mysql/data:/var/lib/mysql
28
+    command: [
29
+          'mysqld',
30
+          '--innodb-buffer-pool-size=80M',
31
+          '--character-set-server=utf8mb4',
32
+          '--collation-server=utf8mb4_unicode_ci',
33
+          '--default-time-zone=+8:00',
34
+          '--lower-case-table-names=1'
35
+        ]
36
+    environment:
37
+      MYSQL_DATABASE: 'ry-cloud'
38
+      MYSQL_ROOT_PASSWORD: password
39
+  ruoyi-redis:
40
+    container_name: ruoyi-redis
41
+    image: redis
42
+    build:
43
+      context: ./redis
44
+    ports:
45
+      - "6379:6379"
46
+    volumes:
47
+      - ./redis/conf/redis.conf:/home/ruoyi/redis/redis.conf
48
+      - ./redis/data:/data
49
+    command: redis-server /home/ruoyi/redis/redis.conf
50
+  ruoyi-nginx:
51
+    container_name: ruoyi-nginx
52
+    image: nginx
53
+    build:
54
+      context: ./nginx
55
+    ports:
56
+      - "80:80"
57
+    volumes:
58
+      - ./nginx/html/dist:/home/ruoyi/projects/ruoyi-ui
59
+      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
60
+      - ./nginx/logs:/var/log/nginx
61
+      - ./nginx/conf.d:/etc/nginx/conf.d
62
+    depends_on:
63
+      - ruoyi-gateway
64
+    links:
65
+      - ruoyi-gateway
66
+  ruoyi-gateway:
67
+    container_name: ruoyi-gateway
68
+    build:
69
+      context: ./ruoyi/gateway
70
+      dockerfile: dockerfile
71
+    ports:
72
+      - "8080:8080"
73
+    depends_on:
74
+      - ruoyi-redis
75
+    links:
76
+      - ruoyi-redis
77
+  ruoyi-auth:
78
+    container_name: ruoyi-auth
79
+    build:
80
+      context: ./ruoyi/auth
81
+      dockerfile: dockerfile
82
+    ports:
83
+      - "9200:9200"
84
+    depends_on:
85
+      - ruoyi-redis
86
+    links:
87
+      - ruoyi-redis
88
+  ruoyi-modules-system:
89
+    container_name: ruoyi-modules-system
90
+    build:
91
+      context: ./ruoyi/modules/system
92
+      dockerfile: dockerfile
93
+    ports:
94
+      - "9201:9201"
95
+    depends_on:
96
+      - ruoyi-redis
97
+      - ruoyi-mysql
98
+    links:
99
+      - ruoyi-redis
100
+      - ruoyi-mysql
101
+  ruoyi-modules-gen:
102
+    container_name: ruoyi-modules-gen
103
+    build:
104
+      context: ./ruoyi/modules/gen
105
+      dockerfile: dockerfile
106
+    ports:
107
+      - "9202:9202"
108
+    depends_on:
109
+      - ruoyi-mysql
110
+    links:
111
+      - ruoyi-mysql
112
+  ruoyi-modules-job:
113
+    container_name: ruoyi-modules-job
114
+    build:
115
+      context: ./ruoyi/modules/job
116
+      dockerfile: dockerfile
117
+    ports:
118
+      - "9203:9203"
119
+    depends_on:
120
+      - ruoyi-mysql
121
+    links:
122
+      - ruoyi-mysql
123
+  ruoyi-modules-file:
124
+    container_name: ruoyi-modules-file
125
+    build:
126
+      context: ./ruoyi/modules/file
127
+      dockerfile: dockerfile
128
+    ports:
129
+      - "9300:9300"
130
+    volumes:
131
+    - ./ruoyi/uploadPath:/home/ruoyi/uploadPath
132
+  ruoyi-visual-monitor:
133
+    container_name: ruoyi-visual-monitor
134
+    build:
135
+      context: ./ruoyi/visual/monitor
136
+      dockerfile: dockerfile
137
+    ports:
138
+      - "9100:9100"

+ 7 - 0
docker/mysql/dockerfile

@@ -0,0 +1,7 @@
1
+# 基础镜像
2
+FROM mysql:5.7
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 执行sql脚本
7
+ADD ./db/*.sql /docker-entrypoint-initdb.d/

+ 32 - 0
docker/nacos/conf/application.properties

@@ -0,0 +1,32 @@
1
+spring.datasource.platform=mysql
2
+db.num=1
3
+db.url.0=jdbc:mysql://ruoyi-mysql:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
4
+db.user=root
5
+db.password=password
6
+
7
+nacos.naming.empty-service.auto-clean=true
8
+nacos.naming.empty-service.clean.initial-delay-ms=50000
9
+nacos.naming.empty-service.clean.period-time-ms=30000
10
+
11
+management.endpoints.web.exposure.include=*
12
+
13
+management.metrics.export.elastic.enabled=false
14
+management.metrics.export.influx.enabled=false
15
+
16
+server.tomcat.accesslog.enabled=true
17
+server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
18
+
19
+server.tomcat.basedir=
20
+
21
+nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
22
+
23
+nacos.core.auth.system.type=nacos
24
+nacos.core.auth.enabled=false
25
+nacos.core.auth.default.token.expire.seconds=18000
26
+nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
27
+nacos.core.auth.caching.enabled=true
28
+nacos.core.auth.enable.userAgentAuthWhite=false
29
+nacos.core.auth.server.identity.key=serverIdentity
30
+nacos.core.auth.server.identity.value=security
31
+
32
+nacos.istio.mcp.server.enabled=false

+ 7 - 0
docker/nacos/dockerfile

@@ -0,0 +1,7 @@
1
+# 基础镜像
2
+FROM nacos/nacos-server
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 复制conf文件到路径
7
+COPY ./conf/application.properties /home/nacos/conf/application.properties

+ 36 - 0
docker/nginx/conf/nginx.conf

@@ -0,0 +1,36 @@
1
+worker_processes  1;
2
+
3
+events {
4
+    worker_connections  1024;
5
+}
6
+
7
+http {
8
+    include       mime.types;
9
+    default_type  application/octet-stream;
10
+    sendfile        on;
11
+    keepalive_timeout  65;
12
+
13
+    server {
14
+        listen       80;
15
+        server_name  localhost;
16
+
17
+		location / {
18
+            root   /home/ruoyi/projects/ruoyi-ui;
19
+			try_files $uri $uri/ /index.html;
20
+            index  index.html index.htm;
21
+        }
22
+		
23
+		location /prod-api/{
24
+			proxy_set_header Host $http_host;
25
+			proxy_set_header X-Real-IP $remote_addr;
26
+			proxy_set_header REMOTE-HOST $remote_addr;
27
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
28
+			proxy_pass http://ruoyi-gateway:8080/;
29
+		}
30
+
31
+        error_page   500 502 503 504  /50x.html;
32
+        location = /50x.html {
33
+            root   html;
34
+        }
35
+    }
36
+}# requirepass 123456

+ 15 - 0
docker/nginx/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM nginx
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi/projects/ruoyi-ui
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
10
+# 指定路径
11
+WORKDIR /home/ruoyi/projects/ruoyi-ui
12
+# 复制conf文件到路径
13
+COPY ./conf/nginx.conf /etc/nginx/nginx.conf
14
+# 复制html文件到路径
15
+COPY ./html/dist /home/ruoyi/projects/ruoyi-ui

+ 1 - 0
docker/redis/conf/redis.conf

@@ -0,0 +1 @@
1
+# requirepass 123456

+ 13 - 0
docker/redis/dockerfile

@@ -0,0 +1,13 @@
1
+# 基础镜像
2
+FROM redis
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi/redis
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi/redis
10
+# 指定路径
11
+WORKDIR /home/ruoyi/redis
12
+# 复制conf文件到路径
13
+COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf

+ 15 - 0
docker/ruoyi/auth/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM  openjdk:8-jre
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi
10
+# 指定路径
11
+WORKDIR /home/ruoyi
12
+# 复制jar文件到路径
13
+COPY ./jar/ruoyi-auth.jar /home/ruoyi/ruoyi-auth.jar
14
+# 启动认证服务
15
+ENTRYPOINT ["java","-jar","ruoyi-auth.jar"]

+ 15 - 0
docker/ruoyi/gateway/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM  openjdk:8-jre
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi
10
+# 指定路径
11
+WORKDIR /home/ruoyi
12
+# 复制jar文件到路径
13
+COPY ./jar/ruoyi-gateway.jar /home/ruoyi/ruoyi-gateway.jar
14
+# 启动网关服务
15
+ENTRYPOINT ["java","-jar","ruoyi-gateway.jar"]

+ 15 - 0
docker/ruoyi/modules/file/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM  openjdk:8-jre
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi
10
+# 指定路径
11
+WORKDIR /home/ruoyi
12
+# 复制jar文件到路径
13
+COPY ./jar/ruoyi-modules-file.jar /home/ruoyi/ruoyi-modules-file.jar
14
+# 启动文件服务
15
+ENTRYPOINT ["java","-jar","ruoyi-modules-file.jar"]

+ 15 - 0
docker/ruoyi/modules/gen/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM  openjdk:8-jre
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi
10
+# 指定路径
11
+WORKDIR /home/ruoyi
12
+# 复制jar文件到路径
13
+COPY ./jar/ruoyi-modules-gen.jar /home/ruoyi/ruoyi-modules-gen.jar
14
+# 启动代码生成服务
15
+ENTRYPOINT ["java","-jar","ruoyi-modules-gen.jar"]

+ 15 - 0
docker/ruoyi/modules/job/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM  openjdk:8-jre
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi
10
+# 指定路径
11
+WORKDIR /home/ruoyi
12
+# 复制jar文件到路径
13
+COPY ./jar/ruoyi-modules-job.jar /home/ruoyi/ruoyi-modules-job.jar
14
+# 启动定时任务服务
15
+ENTRYPOINT ["java","-jar","ruoyi-modules-job.jar"]

+ 15 - 0
docker/ruoyi/modules/system/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM  openjdk:8-jre
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi
10
+# 指定路径
11
+WORKDIR /home/ruoyi
12
+# 复制jar文件到路径
13
+COPY ./jar/ruoyi-modules-system.jar /home/ruoyi/ruoyi-modules-system.jar
14
+# 启动系统服务
15
+ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"]

+ 15 - 0
docker/ruoyi/visual/monitor/dockerfile

@@ -0,0 +1,15 @@
1
+# 基础镜像
2
+FROM  openjdk:8-jre
3
+# author
4
+MAINTAINER ruoyi
5
+
6
+# 挂载目录
7
+VOLUME /home/ruoyi
8
+# 创建目录
9
+RUN mkdir -p /home/ruoyi
10
+# 指定路径
11
+WORKDIR /home/ruoyi
12
+# 复制jar文件到路径
13
+COPY ./jar/ruoyi-visual-monitor.jar /home/ruoyi/ruoyi-visual-monitor.jar
14
+# 启动系统服务
15
+ENTRYPOINT ["java","-jar","ruoyi-visual-monitor.jar"]

+ 1 - 1
pom.xml

@@ -21,7 +21,7 @@
21 21
         <spring-cloud.version>2020.0.2</spring-cloud.version>
22 22
         <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
23 23
         <alibaba.nacos.version>2.0.1</alibaba.nacos.version>
24
-		<spring-boot-admin.version>2.4.1</spring-boot-admin.version>
24
+        <spring-boot-admin.version>2.4.1</spring-boot-admin.version>
25 25
         <spring-boot.mybatis>2.1.4</spring-boot.mybatis>
26 26
         <swagger.fox.version>2.9.2</swagger.fox.version>
27 27
         <swagger.core.version>1.5.24</swagger.core.version>

+ 9 - 0
sql/ry_seata_20210128.sql

@@ -1,3 +1,12 @@
1
+DROP DATABASE IF EXISTS `ry-seata`;
2
+
3
+CREATE DATABASE  `ry-seata` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
4
+
5
+SET NAMES utf8mb4;
6
+SET FOREIGN_KEY_CHECKS = 0;
7
+
8
+USE `ry-seata`;
9
+
1 10
 -- -------------------------------- The script used when storeMode is 'db' --------------------------------
2 11
 -- the table to store GlobalSession data
3 12
 CREATE TABLE IF NOT EXISTS `global_table`