基于openEuler22.03 LTS环境的容器项目实训——分布式微服务项目部署

一、说明

本文配置环境为VMware虚拟机(4核CPU,8 GB内存,40GB磁盘),OS为openEuler 22.03 LTS ,虚拟机要求能联网。

二、安装docker环境

2.1 安装docker相关软件包

[root@node01 ~]# dnf -y install docker docker-compose

2.2 查看docker版本

[root@node01 ~]# docker version
Client:
 Version:           18.09.0
 EulerVersion:      18.09.0.323
 API version:       1.39
 Go version:        go1.17.3
 Git commit:        172f8da
 Built:             Wed Apr 19 02:01:22 2023
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.09.0
  EulerVersion:     18.09.0.323
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.17.3
  Git commit:       172f8da
  Built:            Wed Apr 19 02:00:48 2023
  OS/Arch:          linux/amd64
  Experimental:     false

2.3 添加国内镜像源

系统默认从docker官方镜像源Docker hub拉取镜像,在国内从Docker hub拉取镜像会比较慢,而且可能因为网络原因导致拉取失败,此时就可以配置 “国内的加速器”。国内有许多的云服务商都配置了国内镜像加速器服务。

以配置华为云容器加速器为例,如下图所示,在华为云的所有服务中,找到容器中的“容器镜像服务SWR”,

点击左侧的“镜像资源”-->“镜像中心”,然后点击右上角的“镜像加速器”,打开如下图所示的窗口,并按其中的操作说明修改/etc/docker/daemon.json文件即可。

2.4 重启docker服务并设置为开机自启动

完成上述操作后,重启docker服务,命令如下:

[root@node01 ~]# systemctl restart docker
[root@node01 ~]# systemctl enable docker

三、部署分布式微服务架构Web项目实战

以下以分布式微服务架构的开源项目(https://gitee.com/y_project/RuoYi-Cloud)为例,采用docker-compos容器编排的方式进行实战训练。

根据官方文档(http://doc.ruoyi.vip/ruoyi/)说明,该项目的系统运行环境要求如下:

  • JDK >= 1.8
  • MySQL >= 5.7
  • Maven >= 3.0

根据官方文档信息,系统模板如下:

com.ruoyi     
├── ruoyi-ui              // 前端框架 [80]
├── ruoyi-gateway         // 网关模块 [8080]
├── ruoyi-auth            // 认证中心 [9200]
├── ruoyi-api             // 接口模块
│       └── ruoyi-api-system                          // 系统接口
├── ruoyi-common          // 通用模块
│       └── ruoyi-common-core                         // 核心模块
│       └── ruoyi-common-datascope                    // 权限范围
│       └── ruoyi-common-datasource                   // 多数据源
│       └── ruoyi-common-log                          // 日志记录
│       └── ruoyi-common-redis                        // 缓存服务
│       └── ruoyi-common-seata                        // 分布式事务
│       └── ruoyi-common-security                     // 安全模块
│       └── ruoyi-common-swagger                      // 系统接口
├── ruoyi-modules         // 业务模块
│       └── ruoyi-system                              // 系统模块 [9201]
│       └── ruoyi-gen                                 // 代码生成 [9202]
│       └── ruoyi-job                                 // 定时任务 [9203]
│       └── ruoyi-file                                // 文件服务 [9300]
├── ruoyi-visual          // 图形化管理模块
│       └── ruoyi-visual-monitor                      // 监控中心 [9100]
├──pom.xml                // 公共依赖

利用docker部署该项目的部署架构如下图所示。

上图中,各容器实例提供的服务简介绍如下:

  • ruoyi-nginx容器实例提供HTTP反向代理和Web服务
  • ruoyi-gateway容器实例网关服务
  • ruoyi-auth容器实例提供认证服务
  • ruoyi-nacos容器实例提供注册中心和配置中心服务
  • ruoyi-modules-XXX容器实例提供系统业务功能服务
  • ruoyi-mysql容器实例提供数据库服务
  • ruoyi-redis容器实例提供缓存和权限认证服务
  • ruoyi-visual-monitor容器实例提供系统服务状态监控服务

3.1 准备工作

3.1.1 清空环境

为避免干扰,建议清除所有已有的镜像和容器,确保执行【docker ps -a】和【docker images】命令的输出均为空,如下图所示。

[root@node01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[root@node01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

3.1.2 下载源码

若依开源项目(前后端分离版本)源码下载地址:https://gitee.com/y_project/RuoYi-Cloud

下载该项目源码的ZIP压缩包。

解压后的文件和目录如下:

3.1.3 修改配置文件

3.1.3.1 修改ruoyi-auth配置文件

编辑源码目录\ruoyi-auth\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。

3.1.3.2 修改ruoyi-gateway配置文件

编辑源码目录\ruoyi-gateway\src\main\resources下的bootstrap.yml配置文件,将其中端口号为8848前面的127.0.0.1替换成nacos容器名ruoyi-nacos,端口号为8718前面的127.0.0.1替换成服务器IP地址,如下所示。

3.1.3.3 修改ruoyi-modules-file配置文件

编辑源码目录\ruoyi-modules\ruoyi-file\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。

3.1.3.4 修改ruoyi-modules-gen配置文件

编辑源码目录\ruoyi-modules\ruoyi-gen\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。

3.1.3.5 修改ruoyi-modules-job配置文件

编辑源码目录\ruoyi-modules\ruoyi-job\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。

3.1.3.6 修改ruoyi-modules-system配置文件

编辑源码目录\ruoyi-modules\ruoyi-system\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。

3.1.3.7 修改ruoyi-monitor配置文件

编辑源码目录\ruoyi-visual\ruoyi-monitor\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。

3.1.4 准备nacos配置文件

在源码根目录下新建一个名为conf的目录,并利用文本编辑器(如notepad++)新建一个名为application.properties的文本文件,文件内容如下,并将该文件保存在conf目录中。

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://ruoyi-mysql:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=password

nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000

management.endpoints.web.exposure.include=*

management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false

server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i

server.tomcat.basedir=/home/ruoyi/nacos/tomcat/logs

nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=false
nacos.core.auth.default.token.expire.seconds=18000
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
nacos.core.auth.caching.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security

nacos.istio.mcp.server.enabled=false

注:第三行中的ruoyi-mysql为mysql的容器名,第四行中的db.user表示mysql数据库的用户名,第五行的db.password表示用户密码,这里的密码可根据需要自行修改。 

3.1.5 准备nginx配置文件

利用文本编辑器(如notepad++)新建一个名为nginx.conf的文本文件,文件内容如下,并将该文件保存在conf目录中。

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;    #前端监听端口
        server_name  localhost;

        # 配置前端目录及首页
        location / {
            root   /usr/local/ruoyi/dist;  #前端Web主目录,可自行定义
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        # 配置反向代理,所有对/prod-api接口的访问均代理至ruoyi-gateway:8080
        location /prod-api/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://ruoyi-gateway:8080/;
        }

        # 避免actuator暴露
        if ($request_uri ~ "/actuator") {
            return 403;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

3.1.6 准备redis配置文件

利用文本编辑器(如notepad++)新建一个名为redis.conf的文本文件,文件内容如下,并将该文件保存在conf目录中。

requirepass 123456

注:其中的密码可自行修改。

3.1.7 准备工作目录

 在Linux服务器的/ruoyi-cloud目录中建立如下图所示的目录结构。

示例命令如下:

[root@node01 ~]# mkdir /ruoyi-cloud && cd /ruoyi-cloud
[root@node01 ruoyi-cloud]# mkdir -p mysql/db nacos/conf nginx/conf redis/conf ruoyi script uploadPath
[root@node01 ruoyi-cloud]# mkdir -p ruoyi/auth/jar ruoyi/gateway/jar ruoyi/modules ruoyi/visual/monitor/jar
[root@node01 ruoyi-cloud]# mkdir -p ruoyi/modules/file/jar ruoyi/modules/gen/jar ruoyi/modules/job/jar ruoyi/modules/system/jar

3.2 打包前端项目

可利用Node.js包管理工具的npm命令对前端项目进行打包,Node.js的安装与环境配置可参见文章:Node.js的安装与配置

在ruoyi-ui文件夹下的package.json文件中可以看到前端项目构建的命令,其中build:prod为构建生产环境,build:stage则为测试环境,以下以构建生产环境为例。

在cmd命令行下,在ruoyi-ui文件夹下,依次执行【npm install】和【npm run build:prod】将前端项目打包成一个dist文件夹,如下图所示。

# 安装依赖包
D:\develop\ruoyi-cloud\ruoyi-ui>npm install
npm WARN ERESOLVE overriding peer dependency
……此处省略其它系统输出……

# 打包前端项目
D:\develop\ruoyi-cloud\ruoyi-ui>npm run build:prod

> ruoyi@3.6.4 build:prod
> vue-cli-service build


-  Building for production...
……此处省略其它系统输出……

# 查看前端项目dist文件夹中的文件
D:\develop\ruoyi-cloud\ruoyi-ui>dir dist
 驱动器 D 中的卷是 软件
 卷的序列号是 C88D-5646

 D:\develop\ruoyi-cloud\ruoyi-ui\dist 的目录

2024/05/12  17:52    <DIR>          .
2024/05/12  17:52    <DIR>          ..
2024/05/12  17:52             5,561 favicon.ico
2024/05/12  17:52    <DIR>          html
2024/05/12  17:52            12,085 index.html
2024/05/12  17:52             3,967 index.html.gz
2024/05/12  17:52                26 robots.txt
2024/05/12  17:52    <DIR>          static
               4 个文件         21,639 字节
               4 个目录 219,372,675,072 可用字节

3.3 构建前端镜像

3.3.1 上传前端文件

将前端项目打包的dist文件夹利用xftp上传至Linux服务器的/ruoyi-cloud/目录,如下图所示。

3.3.2 上传nginx配置文件

将conf文件夹下的nginx.conf文件利用xftp上传至Linux服务器的/ruoyi-cloud/nginx/conf目录,如下图所示。

3.3.3 编写前端镜像构建脚本

在/ruoyi-cloud/nginx目录下新建Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 nginx]# vim Dockerfile 

# 基础镜像
FROM nginx
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi/dist
# 创建目录
RUN mkdir -p /usr/local/ruoyi/dist
# 指定路径
WORKDIR /usr/local/ruoyi/dist
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制前端项目文件到Web主目录
COPY ./dist /usr/local/ruoyi/dist

3.3.4 构建前端镜像

在Dockerfile文件所在目录执行【docker build -t ruoyi-nginx:latest .】命令拉取nginx基础镜像,并利用该nginx基础镜像构建一个名为ruoyi-nginx:latest的镜像,如下所示。

[root@node01 nginx]# docker build -t ruoyi-nginx:latest .
Sending build context to Docker daemon  6.672MB
Step 1/3 : FROM nginx:latest
latest: Pulling from library/nginx
b0a0cf830b12: Pull complete 
8ddb1e6cdf34: Pull complete 
5252b206aac2: Pull complete 
988b92d96970: Pull complete 
7102627a7a6e: Pull complete 
93295add984d: Pull complete 
ebde0aa1d1aa: Pull complete 
Digest: sha256:ed6d2c43c8fbcd3eaa44c9dab6d94cb346234476230dc1681227aa72d07181ee
Status: Downloaded newer image for nginx:latest
 ---> 7383c266ef25
Step 2/3 : COPY dist  /usr/share/dist
 ---> 972f25f1821e
Step 3/3 : COPY nginx.conf /etc/nginx/nginx.conf
 ---> ad549d5b54bc
Successfully built ad549d5b54bc
Successfully tagged ruoyi-nginx:latest

注:若某个下载环节卡住长时间不动,可按Ctrl+C取消,重新执行构建即可。 

3.3.5 查看前端镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 nginx]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ruoyi-nginx         latest              ff1e85d673af        37 seconds ago      148MB
nginx               latest              605c77e624dd        2 years ago         141MB

3.4 编译构建后端项目

利用诸如IntelliJ IDEA之类的工具将系统编译构建出17个jar包(也可以利用华为云的CodeArts编译构建生成,过程可参见:利用CodeArts构建编译后端项目)。

利用IntelliJ IDEA编译构建过程如下所示。

将编译构建的jar包复制保存在本地某个目录(比如源码根目录下的jar)。 

3.5 构建后端镜像

3.5.1 构建gateway镜像

3.5.1.1 上传jar

将编译构建的ruoyi-gateway.jar包上传至/ruoyi-cloud/ruoyi/gateway/jar目录下,如下图所示。

3.5.1.2 编写镜像脚本文件

 在/ruoyi-cloud/ruoyi/gateway目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 gateway]# vim Dockerfile

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi
# 创建目录
RUN mkdir -p /usr/local/ruoyi
# 指定路径
WORKDIR /usr/local/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-gateway.jar /usr/local/ruoyi/ruoyi-gateway.jar
# 启动网关服务
ENTRYPOINT ["java","-jar","ruoyi-gateway.jar"]
3.5.1.3 构建gateway镜像

在/ruoyi-cloud/ruoyi/gateway目录执行【docker build -t ruoyi-gateway:latest .】命令拉取openjdk:8-jre基础镜像,并利用该基础镜像构建一个名为ruoyi-gateway:latest的镜像,如下所示。

[root@node01 gateway]# docker build -t ruoyi-gateway:latest .
Sending build context to Docker daemon  88.64MB
Step 1/7 : FROM  openjdk:8-jre
8-jre: Pulling from library/openjdk
0e29546d541c: Pull complete 
9b829c73b52b: Pull complete 
cb5b7ae36172: Pull complete 
99ce012bef04: Pull complete 
22dc2a72d098: Pull complete 
9c69a57e10d9: Pull complete 
Digest: sha256:c0ab1c0631266ef9420a414726a790733a2561efc5f4fa2f9b8186f4d6b00d53
Status: Downloaded newer image for openjdk:8-jre
 ---> 26ac3f63d29f
Step 2/7 : MAINTAINER ptuxgk
 ---> Running in f5468f50085d
Removing intermediate container f5468f50085d
 ---> 76a2be41ec28
Step 3/7 : VOLUME /usr/local/ruoyi
 ---> Running in 4b73ed75b4f0
Removing intermediate container 4b73ed75b4f0
 ---> c89d9c2269d7
Step 4/7 : RUN mkdir -p /usr/local/ruoyi
 ---> Running in 8a3e5ea28ff7
Removing intermediate container 8a3e5ea28ff7
 ---> 2f78ffef79b6
Step 5/7 : WORKDIR /usr/local/ruoyi
 ---> Running in c780fe6b6378
Removing intermediate container c780fe6b6378
 ---> 9d84c70972bd
Step 6/7 : COPY ./jar/ruoyi-gateway.jar /usr/local/ruoyi/ruoyi-gateway.jar
 ---> 1028eea8d844
Step 7/7 : ENTRYPOINT ["java","-jar","ruoyi-gateway.jar"]
 ---> Running in df90a9baed5f
Removing intermediate container df90a9baed5f
 ---> 367e221b3f9e
Successfully built 367e221b3f9e
Successfully tagged ruoyi-gateway:latest
3.5.1.4 查看镜像

 执行【docker images】命令查看当前镜像,如下所示。

[root@node01 gateway]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
ruoyi-gateway       latest              367e221b3f9e        About a minute ago   362MB
ruoyi-nginx         latest              ff1e85d673af        23 minutes ago       148MB
nginx               latest              605c77e624dd        2 years ago          141MB
openjdk             8-jre               26ac3f63d29f        2 years ago          273MB

3.5.2 构建nacos镜像

3.5.2.1 上传nacos配置文件

将conf文件夹中的application.properties配置文件上传至/ruoyi-cloud/nacos/conf目录下,如下图所示。

3.5.2.2 编写镜像脚本文件

 在/ruoyi-cloud/nacos/目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 nacos]# vim Dockerfile

# 基础镜像
FROM nacos/nacos-server
# author
MAINTAINER ptuxgk

# 复制conf文件到路径
COPY ./conf/application.properties /home/nacos/conf/application.properties
3.5.2.3 构建nacos镜像

在/ruoyi-cloud/nacos/目录执行【docker build -t ruoyi-nacos:latest .】命令拉取nacos/nacos-server基础镜像,并利用该基础镜像构建一个名为ruoyi-nacos:latest的镜像,如下所示。

[root@node01 nacos]# docker build -t ruoyi-nacos:latest .
Sending build context to Docker daemon  4.608kB
Step 1/3 : FROM nacos/nacos-server
latest: Pulling from nacos/nacos-server
5ad559c5ae16: Pull complete 
5746ca7cf180: Pull complete 
d709fe221c89: Pull complete 
e88fdcf257b1: Pull complete 
eb573b28173c: Pull complete 
a71625257ced: Pull complete 
26e7e7836838: Pull complete 
30f7d6851c4a: Pull complete 
d565cd94c625: Pull complete 
Digest: sha256:87a3d8b78ec24c253a4db7c093097a7b256327eb5117cd9498e289b896918153
Status: Downloaded newer image for nacos/nacos-server:latest
 ---> bdf60dc2ada3
Step 2/3 : MAINTAINER ptuxgk
 ---> Running in 0f93cd9783da
Removing intermediate container 0f93cd9783da
 ---> e10323fac388
Step 3/3 : COPY ./conf/application.properties /usr/local/nacos/conf/application.properties
 ---> 9440a168a8aa
Successfully built 9440a168a8aa
Successfully tagged ruoyi-nacos:latest
3.5.2.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 nacos]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
ruoyi-nacos          latest              9440a168a8aa        53 seconds ago      1.05GB
ruoyi-gateway        latest              367e221b3f9e        14 minutes ago      362MB
ruoyi-nginx          latest              ff1e85d673af        36 minutes ago      148MB
nginx                latest              605c77e624dd        2 years ago         141MB
openjdk              8-jre               26ac3f63d29f        2 years ago         273MB
nacos/nacos-server   latest              bdf60dc2ada3        2 years ago         1.05GB

3.5.3 构建auth镜像

3.5.3.1 上传jar

将编译构建的ruoyi-auth.jar包上传至/ruoyi-cloud/ruoyi/auth/jar目录下,如下图所示。

3.5.3.2 编写镜像脚本文件

 在/ruoyi-cloud/ruoyi/auth目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 auth]# vim Dockerfile

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi
# 创建目录
RUN mkdir -p /usr/local/ruoyi
# 指定路径
WORKDIR /usr/local/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-auth.jar /usr/local/ruoyi/ruoyi-auth.jar
# 启动认证服务
ENTRYPOINT ["java","-jar","ruoyi-auth.jar"]
3.5.3.3 构建auth镜像

在/ruoyi-cloud/ruoyi/auth目录执行【docker build -t ruoyi-auth:latest .】命令拉取openjdk:8-jre基础镜像,并利用该基础镜像构建一个名为ruoyi-auth:latest的镜像,如下所示。

[root@node01 auth]# docker build -t ruoyi-auth:latest .
Sending build context to Docker daemon  80.52MB
Step 1/7 : FROM  openjdk:8-jre
 ---> 26ac3f63d29f
Step 2/7 : MAINTAINER ptuxgk
 ---> Using cache
 ---> 76a2be41ec28
Step 3/7 : VOLUME /usr/local/ruoyi
 ---> Using cache
 ---> c89d9c2269d7
Step 4/7 : RUN mkdir -p /usr/local/ruoyi
 ---> Using cache
 ---> 2f78ffef79b6
Step 5/7 : WORKDIR /usr/local/ruoyi
 ---> Using cache
 ---> 9d84c70972bd
Step 6/7 : COPY ./jar/ruoyi-auth.jar /usr/local/ruoyi/ruoyi-auth.jar
 ---> 94c4756f24c7
Step 7/7 : ENTRYPOINT ["java","-jar","ruoyi-auth.jar"]
 ---> Running in 26f756ec1a5f
Removing intermediate container 26f756ec1a5f
 ---> 7a78ed9189f5
Successfully built 7a78ed9189f5
Successfully tagged ruoyi-auth:latest
3.5.3.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 auth]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
ruoyi-auth           latest              7a78ed9189f5        2 minutes ago       354MB
ruoyi-nacos          latest              9440a168a8aa        6 minutes ago       1.05GB
ruoyi-gateway        latest              367e221b3f9e        19 minutes ago      362MB
ruoyi-nginx          latest              ff1e85d673af        41 minutes ago      148MB
nginx                latest              605c77e624dd        2 years ago         141MB
openjdk              8-jre               26ac3f63d29f        2 years ago         273MB
nacos/nacos-server   latest              bdf60dc2ada3        2 years ago         1.05GB

3.5.4 构建modules-system镜像

3.5.4.1 上传jar

将编译构建的ruoyi-modules-system.jar包上传至/ruoyi-cloud/ruoyi/modules/system/jar目录下,如下图所示。

3.5.4.2 编写镜像脚本文件

 在/ruoyi-cloud/ruoyi/modules/system/目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 system]# vim Dockerfile

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi
# 创建目录
RUN mkdir -p /usr/local/ruoyi
# 指定路径
WORKDIR /usr/local/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-modules-system.jar /usr/local/ruoyi/ruoyi-modules-system.jar
# 启动系统服务
ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"]
3.5.4.3 构建modules-system镜像

在/ruoyi-cloud/ruoyi/modules/system/目录执行【docker build -t ruoyi-modules-system:latest .】命令拉取openjdk:8-jre基础镜像,并利用该基础镜像构建一个名为ruoyi-modules-system:latest的镜像,如下所示。

[root@node01 system]# docker build -t ruoyi-modules-system:latest .
Sending build context to Docker daemon  96.87MB
Step 1/7 : FROM  openjdk:8-jre
 ---> 26ac3f63d29f
Step 2/7 : MAINTAINER ptuxgk
 ---> Using cache
 ---> 76a2be41ec28
Step 3/7 : VOLUME /usr/local/ruoyi
 ---> Using cache
 ---> c89d9c2269d7
Step 4/7 : RUN mkdir -p /usr/local/ruoyi
 ---> Using cache
 ---> 2f78ffef79b6
Step 5/7 : WORKDIR /usr/local/ruoyi
 ---> Using cache
 ---> 9d84c70972bd
Step 6/7 : COPY ./jar/ruoyi-modules-system.jar /usr/local/ruoyi/ruoyi-modules-system.jar
 ---> cda30329b07b
Step 7/7 : ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"]
 ---> Running in 929d10014d2d
Removing intermediate container 929d10014d2d
 ---> ac593d77af23
Successfully built ac593d77af23
Successfully tagged ruoyi-modules-system:latest
3.5.4.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 system]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ruoyi-modules-system   latest              ac593d77af23        21 seconds ago      370MB
ruoyi-auth             latest              7a78ed9189f5        12 minutes ago      354MB
ruoyi-nacos            latest              9440a168a8aa        16 minutes ago      1.05GB
ruoyi-gateway          latest              367e221b3f9e        29 minutes ago      362MB
ruoyi-nginx            latest              ff1e85d673af        About an hour ago   148MB
nginx                  latest              605c77e624dd        2 years ago         141MB
openjdk                8-jre               26ac3f63d29f        2 years ago         273MB
nacos/nacos-server     latest              bdf60dc2ada3        2 years ago         1.05GB

3.5.5 构建modules-gen镜像

3.5.5.1 上传jar

将编译构建的modules-gen.jar包上传至/ruoyi-cloud/ruoyi/modules/gen/jar目录下,如下图所示。

3.5.5.2 编写镜像脚本文件

 在/ruoyi-cloud/ruoyi/modules/gen/目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 gen]# vim Dockerfile

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi
# 创建目录
RUN mkdir -p /usr/local/ruoyi
# 指定路径
WORKDIR /usr/local/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-modules-gen.jar /usr/local/ruoyi/ruoyi-modules-gen.jar
# 启动代码生成服务
ENTRYPOINT ["java","-jar","ruoyi-modules-gen.jar"]
3.5.5.3 构建modules-gen镜像

在/ruoyi-cloud/ruoyi/modules/gen/目录执行【docker build -t ruoyi-modules-gen:latest .】命令拉取openjdk:8-jre基础镜像,并利用该基础镜像构建一个名为ruoyi-modules-gen:latest的镜像,如下所示。

[root@node01 gen]# docker build -t ruoyi-modules-gen:latest .
Sending build context to Docker daemon  91.91MB
Step 1/7 : FROM  openjdk:8-jre
 ---> 26ac3f63d29f
Step 2/7 : MAINTAINER ptuxgk
 ---> Using cache
 ---> 76a2be41ec28
Step 3/7 : VOLUME /usr/local/ruoyi
 ---> Using cache
 ---> c89d9c2269d7
Step 4/7 : RUN mkdir -p /usr/local/ruoyi
 ---> Using cache
 ---> 2f78ffef79b6
Step 5/7 : WORKDIR /usr/local/ruoyi
 ---> Using cache
 ---> 9d84c70972bd
Step 6/7 : COPY ./jar/ruoyi-modules-gen.jar /usr/local/ruoyi/ruoyi-modules-gen.jar
 ---> 7d6e8933b07e
Step 7/7 : ENTRYPOINT ["java","-jar","ruoyi-modules-gen.jar"]
 ---> Running in 5e155f7f1bb0
Removing intermediate container 5e155f7f1bb0
 ---> 3916a45a66cb
Successfully built 3916a45a66cb
Successfully tagged ruoyi-modules-gen:latest
 3.5.5.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 gen]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ruoyi-modules-gen      latest              3916a45a66cb        23 seconds ago      365MB
ruoyi-modules-system   latest              ac593d77af23        3 minutes ago       370MB
ruoyi-auth             latest              7a78ed9189f5        15 minutes ago      354MB
ruoyi-nacos            latest              9440a168a8aa        19 minutes ago      1.05GB
ruoyi-gateway          latest              367e221b3f9e        32 minutes ago      362MB
ruoyi-nginx            latest              ff1e85d673af        About an hour ago   148MB
nginx                  latest              605c77e624dd        2 years ago         141MB
openjdk                8-jre               26ac3f63d29f        2 years ago         273MB
nacos/nacos-server     latest              bdf60dc2ada3        2 years ago         1.05GB

3.5.6 构建modules-job镜像

3.5.6.1 上传jar

将编译构建的ruoyi-modules-job.jar包上传至/ruoyi-cloud/ruoyi/modules/job/jar目录下,如下图所示。

3.5.6.2 编写镜像脚本文件

 在/ruoyi-cloud/ruoyi/modules/job目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 job]# vim Dockerfile

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi
# 创建目录
RUN mkdir -p /usr/local/ruoyi
# 指定路径
WORKDIR /usr/local/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-modules-job.jar /usr/local/ruoyi/ruoyi-modules-job.jar
# 启动定时任务服务
ENTRYPOINT ["java","-jar","ruoyi-modules-job.jar"]
3.5.6.3 构建modules-job镜像

在/ruoyi-cloud/ruoyi/modules/job目录执行【docker build -t ruoyi-modules-job:latest .】命令拉取openjdk:8-jre基础镜像,并利用该基础镜像构建一个名为ruoyi-modules-job:latest的镜像,如下所示。

[root@node01 job]# docker build -t ruoyi-modules-job:latest .
Sending build context to Docker daemon  92.67MB
Step 1/7 : FROM  openjdk:8-jre
 ---> 26ac3f63d29f
Step 2/7 : MAINTAINER ptuxgk
 ---> Using cache
 ---> 76a2be41ec28
Step 3/7 : VOLUME /usr/local/ruoyi
 ---> Using cache
 ---> c89d9c2269d7
Step 4/7 : RUN mkdir -p /usr/local/ruoyi
 ---> Using cache
 ---> 2f78ffef79b6
Step 5/7 : WORKDIR /usr/local/ruoyi
 ---> Using cache
 ---> 9d84c70972bd
Step 6/7 : COPY ./jar/ruoyi-modules-job.jar /usr/local/ruoyi/ruoyi-modules-job.jar
 ---> 08641d804ab4
Step 7/7 : ENTRYPOINT ["java","-jar","ruoyi-modules-job.jar"]
 ---> Running in 2bb4d9b724ce
Removing intermediate container 2bb4d9b724ce
 ---> 01513e80cd57
Successfully built 01513e80cd57
Successfully tagged ruoyi-modules-job:latest
 3.5.6.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 job]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ruoyi-modules-job      latest              01513e80cd57        21 seconds ago      366MB
ruoyi-modules-gen      latest              3916a45a66cb        4 minutes ago       365MB
ruoyi-modules-system   latest              ac593d77af23        7 minutes ago       370MB
ruoyi-auth             latest              7a78ed9189f5        20 minutes ago      354MB
ruoyi-nacos            latest              9440a168a8aa        23 minutes ago      1.05GB
ruoyi-gateway          latest              367e221b3f9e        37 minutes ago      362MB
ruoyi-nginx            latest              ff1e85d673af        About an hour ago   148MB
nginx                  latest              605c77e624dd        2 years ago         141MB
openjdk                8-jre               26ac3f63d29f        2 years ago         273MB
nacos/nacos-server     latest              bdf60dc2ada3        2 years ago         1.05GB

3.5.7 构建modules-file镜像

3.5.7.1 上传jar

将编译构建的gateway jar包上传至/ruoyi-cloud/ruoyi/modules/file/jar目录下,如下图所示。

3.5.7.2 编写镜像脚本文件

 在/ruoyi-cloud/ruoyi/modules/file目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi
# 创建目录
RUN mkdir -p /usr/local/ruoyi
# 指定路径
WORKDIR /usr/local/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-modules-file.jar /usr/local/ruoyi/ruoyi-modules-file.jar
# 启动文件服务
ENTRYPOINT ["java","-jar","ruoyi-modules-file.jar"]
3.5.7.3 构建modules-file镜像

在/ruoyi-cloud/ruoyi/modules/file目录执行【docker build -t ruoyi-modules-file:latest .】命令拉取openjdk:8-jre基础镜像,并利用该基础镜像构建一个名为ruoyi-modules-file:latest的镜像,如下所示。

[root@node01 file]# docker build -t ruoyi-modules-file:latest .
Sending build context to Docker daemon  88.43MB
Step 1/7 : FROM  openjdk:8-jre
 ---> 26ac3f63d29f
Step 2/7 : MAINTAINER ptuxgk
 ---> Using cache
 ---> 76a2be41ec28
Step 3/7 : VOLUME /usr/local/ruoyi
 ---> Using cache
 ---> c89d9c2269d7
Step 4/7 : RUN mkdir -p /usr/local/ruoyi
 ---> Using cache
 ---> 2f78ffef79b6
Step 5/7 : WORKDIR /usr/local/ruoyi
 ---> Using cache
 ---> 9d84c70972bd
Step 6/7 : COPY ./jar/ruoyi-modules-file.jar /usr/local/ruoyi/ruoyi-modules-file.jar
 ---> 6fe9acc36b82
Step 7/7 : ENTRYPOINT ["java","-jar","ruoyi-modules-file.jar"]
 ---> Running in e78d700d45b2
Removing intermediate container e78d700d45b2
 ---> a4fede44a76e
Successfully built a4fede44a76e
Successfully tagged ruoyi-modules-file:latest
3.5.7.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 file]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ruoyi-modules-file     latest              a4fede44a76e        20 seconds ago      362MB
ruoyi-modules-job      latest              01513e80cd57        7 minutes ago       366MB
ruoyi-modules-gen      latest              3916a45a66cb        11 minutes ago      365MB
ruoyi-modules-system   latest              ac593d77af23        15 minutes ago      370MB
ruoyi-auth             latest              7a78ed9189f5        27 minutes ago      354MB
ruoyi-nacos            latest              9440a168a8aa        30 minutes ago      1.05GB
ruoyi-gateway          latest              367e221b3f9e        44 minutes ago      362MB
ruoyi-nginx            latest              ff1e85d673af        About an hour ago   148MB
nginx                  latest              605c77e624dd        2 years ago         141MB
openjdk                8-jre               26ac3f63d29f        2 years ago         273MB
nacos/nacos-server     latest              bdf60dc2ada3        2 years ago         1.05GB

3.5.8  构建mysql镜像

3.5.8.1 上传sql脚本文件

将源码目录下的sql文件夹中的所有sql文件上传至/ruoyi-cloud/mysql/db目录下,如下图所示。

3.5.8.2 编写镜像脚本文件

 在/ruoyi-cloud/mysql/目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 mysql]# vim Dockerfile

# 基础镜像
FROM mysql:5.7
# author
MAINTAINER ptuxgk

# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/
3.5.8.3 构建mysql镜像

在/ruoyi-cloud/mysql/目录执行【docker build -t ruoyi-mysql:latest .】命令拉取mysql:5.7基础镜像,并利用该基础镜像构建一个名为ruoyi-mysql:latest的镜像,如下所示。

[root@node01 mysql]# docker build -t ruoyi-mysql:latest .
Sending build context to Docker daemon  96.26kB
Step 1/3 : FROM mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Pull complete 
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
0ceb82207cd7: Pull complete 
37f2405cae96: Pull complete 
e2482e017e53: Pull complete 
70deed891d42: Pull complete 
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
 ---> c20987f18b13
Step 2/3 : MAINTAINER ptuxgk
 ---> Running in 6b14168e615b
Removing intermediate container 6b14168e615b
 ---> b5bee4a42df1
Step 3/3 : ADD ./db/*.sql /docker-entrypoint-initdb.d/
 ---> da0cceb9be97
Successfully built da0cceb9be97
Successfully tagged ruoyi-mysql:latest
3.5.8.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 mysql]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED              SIZE
ruoyi-mysql            latest              da0cceb9be97        About a minute ago   448MB
ruoyi-modules-file     latest              a4fede44a76e        22 minutes ago       362MB
ruoyi-modules-job      latest              01513e80cd57        30 minutes ago       366MB
ruoyi-modules-gen      latest              3916a45a66cb        34 minutes ago       365MB
ruoyi-modules-system   latest              ac593d77af23        37 minutes ago       370MB
ruoyi-auth             latest              7a78ed9189f5        About an hour ago    354MB
ruoyi-nacos            latest              9440a168a8aa        About an hour ago    1.05GB
ruoyi-gateway          latest              367e221b3f9e        About an hour ago    362MB
ruoyi-nginx            latest              ff1e85d673af        About an hour ago    148MB
nginx                  latest              605c77e624dd        2 years ago          141MB
openjdk                8-jre               26ac3f63d29f        2 years ago          273MB
mysql                  5.7                 c20987f18b13        2 years ago          448MB
nacos/nacos-server     latest              bdf60dc2ada3        2 years ago          1.05GB

3.5.9 构建redis镜像

3.5.1.1 上传redis配置文件

将conf文件夹中的redis.conf配置文件上传至/ruoyi-cloud/redis/conf目录下,如下图所示。

3.5.1.2 编写镜像脚本文件

 在/ruoyi-cloud/redis/目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 redis]# vim Dockerfile

# 基础镜像
FROM redis
# author
MAINTAINER ptuxgk

# 挂载目录
VOLUME /usr/local/ruoyi/redis
# 创建目录
RUN mkdir -p /usr/local/ruoyi/redis
# 指定路径
WORKDIR /usr/local/ruoyi/redis
# 复制conf文件到路径
COPY ./conf/redis.conf /usr/local/ruoyi/redis/redis.conf
3.5.1.3 构建redis镜像

在/ruoyi-cloud/redis/目录执行【docker build -t ruoyi-redis:latest .】命令拉取redis基础镜像,并利用该基础镜像构建一个名为ruoyi-redis:latest的镜像,如下所示。

[root@node01 redis]# docker build -t ruoyi-redis:latest .
Sending build context to Docker daemon  3.584kB
Step 1/6 : FROM redis
latest: Pulling from library/redis
a2abf6c4d29d: Already exists 
c7a4e4382001: Pull complete 
4044b9ba67c9: Pull complete 
c8388a79482f: Pull complete 
413c8bb60be2: Pull complete 
1abfd3011519: Pull complete 
Digest: sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339
Status: Downloaded newer image for redis:latest
 ---> 7614ae9453d1
Step 2/6 : MAINTAINER ptuxgk
 ---> Running in 3531ad1fd1df
Removing intermediate container 3531ad1fd1df
 ---> 79e9a430c919
Step 3/6 : VOLUME /usr/local/ruoyi/redis
 ---> Running in bc2bf4a99f25
Removing intermediate container bc2bf4a99f25
 ---> fb9b7a4199dc
Step 4/6 : RUN mkdir -p /usr/local/ruoyi/redis
 ---> Running in c6bd7c42e536
Removing intermediate container c6bd7c42e536
 ---> 83ae1f12a519
Step 5/6 : WORKDIR /usr/local/ruoyi/redis
 ---> Running in 9d6872c243da
Removing intermediate container 9d6872c243da
 ---> f2467655cf9a
Step 6/6 : COPY ./conf/redis.conf /usr/local/ruoyi/redis/redis.conf
 ---> 99dee3e00862
Successfully built 99dee3e00862
Successfully tagged ruoyi-redis:latest
 3.5.2.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 redis]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ruoyi-redis            latest              99dee3e00862        55 seconds ago      113MB
ruoyi-mysql            latest              da0cceb9be97        2 minutes ago       448MB
ruoyi-modules-file     latest              a4fede44a76e        23 minutes ago      362MB
ruoyi-modules-job      latest              01513e80cd57        31 minutes ago      366MB
ruoyi-modules-gen      latest              3916a45a66cb        35 minutes ago      365MB
ruoyi-modules-system   latest              ac593d77af23        38 minutes ago      370MB
ruoyi-auth             latest              7a78ed9189f5        About an hour ago   354MB
ruoyi-nacos            latest              9440a168a8aa        About an hour ago   1.05GB
ruoyi-gateway          latest              367e221b3f9e        About an hour ago   362MB
ruoyi-nginx            latest              ff1e85d673af        About an hour ago   148MB
nginx                  latest              605c77e624dd        2 years ago         141MB
openjdk                8-jre               26ac3f63d29f        2 years ago         273MB
redis                  latest              7614ae9453d1        2 years ago         113MB
mysql                  5.7                 c20987f18b13        2 years ago         448MB
nacos/nacos-server     latest              bdf60dc2ada3        2 years ago         1.05GB

3.5.10 构建visual-monitor镜像

3.5.10.1 上传jar

将编译构建的ruoyi-visual-monitor.jar包上传至/ruoyi-cloud/ruoyi/visual/monitor/jar目录下,如下图所示。

3.5.10.2 编写镜像脚本文件

 在/ruoyi-cloud/ruoyi/visual/monitor目录新建一个名为Dockerfile镜像构建脚本,脚本内容如下:

[root@node01 monitor]# vim Dockerfile

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER ruoyi

# 挂载目录
VOLUME /usr/local/ruoyi
# 创建目录
RUN mkdir -p /usr/local/ruoyi
# 指定路径
WORKDIR /usr/local/ruoyi
# 复制jar文件到路径
COPY ./jar/ruoyi-visual-monitor.jar /usr/local/ruoyi/ruoyi-visual-monitor.jar
# 启动系统服务
ENTRYPOINT ["java","-jar","ruoyi-visual-monitor.jar"]
3.5.10.3 构建visual-monitor镜像

在/ruoyi-cloud/ruoyi/visual/monitor目录执行【docker build -t ruoyi-visual-monitor:latest .】命令拉取openjdk:8-jre基础镜像,并利用该基础镜像构建一个名为ruoyi-visual-monitor:latest的镜像,如下所示。

[root@node01 monitor]# docker build -t ruoyi-visual-monitor:latest .
Sending build context to Docker daemon   55.5MB
Step 1/7 : FROM  openjdk:8-jre
 ---> 26ac3f63d29f
Step 2/7 : MAINTAINER ruoyi
 ---> Running in a839c0e5c9dc
Removing intermediate container a839c0e5c9dc
 ---> 593e413b44e2
Step 3/7 : VOLUME /usr/local/ruoyi
 ---> Running in 99b4b6ea8b72
Removing intermediate container 99b4b6ea8b72
 ---> c0152c8a24b8
Step 4/7 : RUN mkdir -p /usr/local/ruoyi
 ---> Running in b737e342a326
Removing intermediate container b737e342a326
 ---> 569986aab06e
Step 5/7 : WORKDIR /usr/local/ruoyi
 ---> Running in 83c2806b5a50
Removing intermediate container 83c2806b5a50
 ---> ca25eef05d2f
Step 6/7 : COPY ./jar/ruoyi-visual-monitor.jar /usr/local/ruoyi/ruoyi-visual-monitor.jar
 ---> feec4bbfabd9
Step 7/7 : ENTRYPOINT ["java","-jar","ruoyi-visual-monitor.jar"]
 ---> Running in 903e48f5c095
Removing intermediate container 903e48f5c095
 ---> f12cca59d7f2
Successfully built f12cca59d7f2
Successfully tagged ruoyi-visual-monitor:latest
 3.5.10.4 查看镜像

执行【docker images】命令查看当前镜像,如下所示。

[root@node01 monitor]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ruoyi-visual-monitor   latest              f12cca59d7f2        20 seconds ago      329MB
ruoyi-redis            latest              99dee3e00862        2 minutes ago       113MB
ruoyi-mysql            latest              da0cceb9be97        4 minutes ago       448MB
ruoyi-modules-file     latest              a4fede44a76e        25 minutes ago      362MB
ruoyi-modules-job      latest              01513e80cd57        32 minutes ago      366MB
ruoyi-modules-gen      latest              3916a45a66cb        37 minutes ago      365MB
ruoyi-modules-system   latest              ac593d77af23        40 minutes ago      370MB
ruoyi-auth             latest              7a78ed9189f5        About an hour ago   354MB
ruoyi-nacos            latest              9440a168a8aa        About an hour ago   1.05GB
ruoyi-gateway          latest              367e221b3f9e        About an hour ago   362MB
ruoyi-nginx            latest              ff1e85d673af        2 hours ago         148MB
nginx                  latest              605c77e624dd        2 years ago         141MB
openjdk                8-jre               26ac3f63d29f        2 years ago         273MB
redis                  latest              7614ae9453d1        2 years ago         113MB
mysql                  5.7                 c20987f18b13        2 years ago         448MB
nacos/nacos-server     latest              bdf60dc2ada3        2 years ago         1.05GB

3.6 综合排编与部署

成功完成上述镜像构建后,就可能利用这些镜像来综合编排容器和部署项目了。

3.6.1 编写编排配置文件

在服务器的/ruoyi-cloud/script/目录下,新建一个名为docker-compose.yml的配置文件,文件内容如下:

[root@node01 script]# vim docker-compose.yml

---
version : '3'
services:
  ruoyi-nacos:
    image: ruoyi-nacos:latest
    container_name: ruoyi-nacos
    environment:
      - MODE=standalone
    volumes:
      - ../nacos/logs/:/usr/local/nacos/logs
      - ../nacos/conf/application.properties:/home/nacos/conf/application.properties
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
    depends_on:
      - ruoyi-mysql
  ruoyi-mysql:
    image: ruoyi-mysql:latest
    container_name: ruoyi-mysql
    ports:
      - "3306:3306"
    volumes:
      - ../mysql/conf:/etc/mysql/conf.d
      - ../mysql/logs:/logs
      - ../mysql/data:/var/lib/mysql
    command: [
          'mysqld',
          '--innodb-buffer-pool-size=80M',
          '--character-set-server=utf8mb4',
          '--collation-server=utf8mb4_unicode_ci',
          '--default-time-zone=+8:00',
          '--lower-case-table-names=1'
        ]
    environment:
      MYSQL_DATABASE: 'ry-cloud'
      MYSQL_ROOT_PASSWORD: password
  ruoyi-redis:
    image: ruoyi-redis:latest
    container_name: ruoyi-redis
    ports:
      - "6379:6379"
    volumes:
      - ../redis/conf/redis.conf:/usr/local/ruoyi/redis/redis.conf
      - ../redis/data:/data
    command: redis-server /usr/local/ruoyi/redis/redis.conf
  ruoyi-nginx:    
    image: ruoyi-nginx:latest
    container_name: ruoyi-nginx
    ports:
      - "80:80"
    volumes:
      - ../nginx/dist:/usr/local/ruoyi/dist
      - ../nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - ../nginx/logs:/var/log/nginx
      - ../nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - ruoyi-gateway
    links:
      - ruoyi-gateway
  ruoyi-gateway:
    image: ruoyi-gateway:latest
    container_name: ruoyi-gateway
    ports:
      - "8080:8080"
    depends_on:
      - ruoyi-redis
    links:
      - ruoyi-redis
  ruoyi-auth:
    image: ruoyi-auth:latest
    container_name: ruoyi-auth
    ports:
      - "9200:9200"
    depends_on:
      - ruoyi-redis
    links:
      - ruoyi-redis
  ruoyi-modules-system:
    image: ruoyi-modules-system:latest
    container_name: ruoyi-modules-system
    ports:
      - "9201:9201"
    depends_on:
      - ruoyi-redis
      - ruoyi-mysql
    links:
      - ruoyi-redis
      - ruoyi-mysql
  ruoyi-modules-gen:
    image: ruoyi-modules-gen:latest
    container_name: ruoyi-modules-gen
    ports:
      - "9202:9202"
    depends_on:
      - ruoyi-mysql
    links:
      - ruoyi-mysql
  ruoyi-modules-job:
    image: ruoyi-modules-job:latest
    container_name: ruoyi-modules-job
    ports:
      - "9203:9203"
    depends_on:
      - ruoyi-mysql
    links:
      - ruoyi-mysql
  ruoyi-modules-file:
    image: ruoyi-modules-file:latest
    container_name: ruoyi-modules-file
    ports:
      - "9300:9300"
    volumes:
    - ../uploadPath:/usr/local/ruoyi/uploadPath
  ruoyi-visual-monitor:
    image: ruoyi-visual-monitor:latest
    container_name: ruoyi-visual-monitor
    ports:
      - "9100:9100"

3.6.2 一键部署系统基础模块

在/ruoyi-cloud/script目录执行【docker-compose up -d ruoyi-mysql ruoyi-nacos ruoyi-redis】命令创建并启动三个系统基础模块容器,如下所示。

[root@node01 script]# docker-compose up -d ruoyi-mysql ruoyi-nacos ruoyi-redis 
Creating network "script_default" with the default driver
Creating ruoyi-redis ... done
Creating ruoyi-mysql ... done
Creating ruoyi-nacos ... done

注:也可以直接执行【docker-compose up -d】 命令创建并启动系统所有模块容器,只是除上述三个基础模块容器外,其它容器均会提示启动失败。

3.6.3 查看容器状态

执行【docker ps -a】命令查看当前容器状态,如下所示。

[root@node01 script]# docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED              STATUS              PORTS                                                      NAMES
28ea80e2d018        ruoyi-nacos:latest   "bin/docker-startup.…"   About a minute ago   Up About a minute   0.0.0.0:8848->8848/tcp, 0.0.0.0:9848-9849->9848-9849/tcp   ruoyi-nacos
1f4abc94dd75        ruoyi-mysql:latest   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp, 33060/tcp                          ruoyi-mysql
ba790f1bceb0        ruoyi-redis:latest   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6379->6379/tcp                                     ruoyi-redis

三个容器状态似乎都没有问题,但查看ruoyi-nacos容器的日志会发现有以下错误提示:

[root@node01 script]# docker logs ruoyi-nacos
	……此处省略其它日志输出……
Caused by: com.alibaba.nacos.api.exception.NacosException: Nacos Server did not start because dumpservice bean construction failure :
No DataSource set
	……此处省略其它日志输出……
Caused by: java.lang.IllegalStateException: No DataSource set

3.6.4 配置防火墙

出现上述错误的原因是因为防火墙,根据docker-compose.yml配置文件中的端口,配置防火墙放通这些tcp端口(80,8080,8848,9848,9849,6379,3306,9100,9200-9203,9300),同时放通容器网络。

# 查看容器网络
[root@node01 script]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
75ae92573500        bridge              bridge              local
2c8011d171c5        host                host                local
181f90b4ae0a        none                null                local
7537065cc31e        script_default      bridge              local #放通此容器网络

# 放通端口
[root@node01 script]# firewall-cmd --permanent --zone=public --add-port={80,8080,8848,9848,9849,6379,3306,9100,9200-9203,9300}/tcp
success

# 放通容器网络接口
[root@node01 script]# firewall-cmd --permanent --add-interface=br-7537065cc31e 
success

# 重载防火墙,使上述配置立即生效
[root@node01 script]# firewall-cmd --reload 
success

3.6.5 重启容器

完成防火墙的配置后,执行【docker-compose restart】命令重启容器,再次查看容器状态及日志,可以看到一切正常。

[root@node01 script]# docker-compose restart 
Restarting ruoyi-nacos ... done
Restarting ruoyi-mysql ... done
Restarting ruoyi-redis ... done

3.7 配置nacos

3.7.1 登录nacos配置中心

打开客户机浏览器,访问http://服务器IP:8848/nacos,打开如下所示界面。

默认登录账号和密码均为nacos,登录后的页面如下图所示。

3.7.2 配置ruoyi-gateway-dev.yml

在nacos配置中心的配置列表中,点击ruoyi-gateway-dev.yml右侧的“编辑”,在打开的页面中,将localhost改为redis容器名称ruoyi-redis,并设置password的值修改成3.1.6节中redis.conf配置文件中指定的值,其它默认,如下所示。

确认无误后,点击右下角的“发布”按钮发布新的配置。 

3.7.3 配置ruoyi-auth-dev.yml

在nacos配置中心的配置列表中,点击ruoyi-auth-dev.yml右侧的“编辑”,在打开的页面中,将localhost改为redis容器名称ruoyi-redis,并设置password的值修改成3.1.6节中redis.conf配置文件中指定的值,其它默认,如下所示。

 确认无误后,点击右下角的“发布”按钮发布新的配置。

3.7.4 配置ruoyi-system-dev.yml

在nacos配置中心的配置列表中,点击ruoyi-system-dev.yml右侧的“编辑”,在打开的页面中,在redis节,将localhost改为redis容器名称ruoyi-redis,并设置password的值修改成3.1.6节中redis.conf配置文件中指定的值,如下所示。

在数据源datasource节,将localhost改为mysql容器名称ruoyi-mysql,密码与3.1.4节中nacos配置文件中的一致。

其它默认,确认无误后,点击右下角的“发布”按钮发布新的配置。

3.7.5 配置ruoyi-gen-dev.yml

在nacos配置中心的配置列表中,点击ruoyi-gen-dev.yml右侧的“编辑”,在打开的页面中,配置内容与3.7.4节一样,不再赘述,如下图所示。

3.7.3 配置ruoyi-job-dev.yml

在nacos配置中心的配置列表中,点击ruoyi-job-dev.yml右侧的“编辑”,在打开的页面中,配置内容与3.7.4节一样,不再赘述,如下图所示。

3.7.6 配置ruoyi-file-dev.yml

在nacos配置中心的配置列表中,点击ruoyi-file-dev.yml右侧的“编辑”,在打开的页面中,将端口号9300前面的127.0.0.1改为容器名称ruoyi-modules-file,path值可根据自身情况修改,如下所示。

3.8 部署系统业务模块

3.8.1 一键部署系统业务模块

在/ruoyi-cloud/script目录,执行【docker-compose up -d】命令创建并启动所有系统业务模块,如下所示。前面已创建和启动的基础模块容器不会再重新创建。

[root@node01 script]# docker-compose up -d
ruoyi-mysql is up-to-date
Starting ruoyi-visual-monitor ... 
Starting ruoyi-visual-monitor ... done
Starting ruoyi-modules-file   ... done
Starting ruoyi-modules-job    ... done
Starting ruoyi-modules-gen    ... done
Creating ruoyi-redis          ... done
Recreating ruoyi-modules-system ... done
Recreating ruoyi-gateway        ... done
Recreating ruoyi-auth           ... done
Recreating ruoyi-nginx          ... done

注:如果在3.6.2节已全部创建容器,在此处执行【docker-compose restart】 命令重启容器即可,也可以执行【docker-compose up -d】命令重新创新和启动。

3.8.2 查看容器状态

稍等2-3分钟后,执行【docker ps -a】 命令查看所有容器状态,可看到所有容器状态正常。

[root@node01 script]# docker ps -a
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
e207b08b5998        ruoyi-nginx:latest            "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        0.0.0.0:80->80/tcp                                         ruoyi-nginx
b09be5ad850f        ruoyi-auth:latest             "java -jar ruoyi-aut…"   3 minutes ago       Up 3 minutes        0.0.0.0:9200->9200/tcp                                     ruoyi-auth
8645a9be7384        ruoyi-modules-system:latest   "java -jar ruoyi-mod…"   3 minutes ago       Up 3 minutes        0.0.0.0:9201->9201/tcp                                     ruoyi-modules-system
46c16d6f9633        ruoyi-gateway:latest          "java -jar ruoyi-gat…"   3 minutes ago       Up 3 minutes        0.0.0.0:8080->8080/tcp                                     ruoyi-gateway
aa276498e97e        ruoyi-redis:latest            "docker-entrypoint.s…"   3 minutes ago       Up 3 minutes        0.0.0.0:6379->6379/tcp                                     ruoyi-redis
272d50eb324e        ruoyi-modules-job:latest      "java -jar ruoyi-mod…"   7 hours ago         Up 3 minutes        0.0.0.0:9203->9203/tcp                                     ruoyi-modules-job
0106674fd03d        ruoyi-modules-gen:latest      "java -jar ruoyi-mod…"   7 hours ago         Up 3 minutes        0.0.0.0:9202->9202/tcp                                     ruoyi-modules-gen
5c00e63ed09e        ruoyi-visual-monitor:latest   "java -jar ruoyi-vis…"   7 hours ago         Up 3 minutes        0.0.0.0:9100->9100/tcp                                     ruoyi-visual-monitor
05c14c6abbc3        ruoyi-modules-file:latest     "java -jar ruoyi-mod…"   7 hours ago         Up 3 minutes        0.0.0.0:9300->9300/tcp                                     ruoyi-modules-file
757bcbc8658e        ruoyi-nacos:latest            "bin/docker-startup.…"   8 hours ago         Up 7 hours          0.0.0.0:8848->8848/tcp, 0.0.0.0:9848-9849->9848-9849/tcp   ruoyi-nacos
659d413cde82        ruoyi-mysql:latest            "docker-entrypoint.s…"   9 hours ago         Up 7 hours          0.0.0.0:3306->3306/tcp, 33060/tcp                          ruoyi-mysql

3.9 测试访问

在客户机,打开浏览器,访问虚拟机IP地址,可成功访问前端登录页面,如下图所示。

以默认的管理员账号admin/admin123登录,可成功访问后端页面,如下图所示。

访问服务器IP:9100,可监控系统服务状态,默认账号密码为ruoyi/123456(3.7节中ruoyi-monitor-dev.yml配置文件中可查看和修改)

 访问服务器IP:8080/swagger-ui/index.html#/gen-controller,可成功访问代理生成接口文档,如下图所示。

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值