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

一、说明

本文配置环境为VMware虚拟机(2核CPU,4 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;
            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 上传配置文件

将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 front-end: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 front-end: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 /usr/local/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.1.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.1.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.2.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.1.1 上传jar

将编译构建的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的镜像,如下所示。

3.5.9 构建redis镜像

3.5.1.1 上传jar

将编译构建的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的镜像,如下所示。

 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.10 构建visual-monitor镜像

3.5.1.1 上传jar

将编译构建的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的镜像,如下所示。

 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.6 综合排编与部署

3.6.1 编写编排配置文件

3.6.2 一键部署

3.6.3 查看容器状态

3.6.4 配置防火墙

3.6.5 重启容器

3.7 配置nacos

3.8 测试访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/618234.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python如何单步调试

Python怎么单步调试&#xff1f;下面给大家介绍一下单步调试&#xff1a; 方法一&#xff1a;执行 python -m pdb myscript.py (Pdb) 会自己主动停在第一行。等待调试&#xff0c;这时你能够看看帮助。 方法二&#xff1a;在所调试程序的开头中&#xff1a;import pdb 并在你…

R语言数据分析案例-股票可视化分析

一、数据整合的对象 # Loading necessary libraries library(readxl) library(dplyr)# Reading the data from Excel files data_1 <- read_excel("云南白药.xlsx") data_2 <- read_excel("冰山.xlsx")二、数据整合的代码 # Reading the data from…

Android的NDK开发中Cmake报缺少对应的x86的so文件

需要实现一个串口操作的命令。 供应商提供了2个so文件。 分别是 armeabi-v7a 和 arm64-v8a 添加到对应的cpp下。 在CMakeLists.txt里添加so文件 # 添加预编译的库 add_library(libxxx SHARED IMPORTED)# 设置库的路径 set_target_properties(libxxx PROPERTIES IMPORTED_…

重写muduo之TcpConnection

目录 1、 TcpConnection.h 2、 TcpConnection.cc 1、 TcpConnection.h TcpConnection底层绑定&#xff08;管理&#xff09;了一个Channel&#xff0c;Channel有事件被Poller通知后&#xff0c;会调用相应的回调&#xff0c;这些回调也是TcpConnection中包含的方法&#xff0c…

牛客Java面试题【面试】

牛客Java面试题【面试】 前言推荐牛客Java面试题【面试】第2章 Java笔面试高频考点&解题技巧1. Java基础[2.1 一、java-基础-1](https://www.nowcoder.com/study/live/689/2/1)1.1 为什么Java代码可以实现一次编写、到处运行&#xff1f;1.2 一个Java文件里可以有多个类吗&…

我觉得这个域名证书监控平台又吊打Uptimekuma了

前面我们讲过uptimekuma 如何监控域名证书&#xff0c;很多人都喜欢 uptimekuma 那高端暗黑的色系上&#xff0c;然而最实用就是它的域名证书监控和历史可用性图表的展示上了&#xff0c;如下如&#xff1a; 但是这个东西吧&#xff0c;好看吗&#xff1f;好看&#xff0c;有用…

关键点检测——面部情绪数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

开源web在线数据库设计软件 —— 筑梦之路

GitHub - drawdb-io/drawdb: Free, simple, and intuitive online database design tool and SQL generator. 简介 DrawDB是一款多功能且用户友好的在线工具&#xff0c;允许用户轻松设计数据库实体关系。通过简单直观的界面&#xff0c;DrawDB使用户能够创建图表、导出SQL脚本…

【机器学习300问】86、简述超参数优化的步骤?如何寻找最优的超参数组合?

本文想讲述清楚怎么样才能选出最优的超参数组合。关于什么是超参数&#xff1f;什么是超参数组合&#xff1f;本文不赘述&#xff0c;在之前我写的文章中有详细介绍哦&#xff01; 【机器学习300问】22、什么是超参数优化&#xff1f;常见超参数优化方法有哪些&#xff1f;htt…

AcWing-168生日蛋糕-搜索/剪枝

题目 思路 表面积和体积公式&#xff1a;以下分析参考自&#xff1a;AcWing 168. 生日蛋糕【图解推导】 - AcWing&#xff1b;AcWing 168. 关于四个剪枝的最清楚解释和再次优化 - AcWing 代码 #include<iostream> #include<cmath> using namespace std;const in…

http协议 tomcat如何访问资源 servlet理论介绍

tomcat介绍 bin是启动命令&#xff1b; conf是配置&#xff0c;可以修改端口号&#xff1b; lib是依赖的jar包&#xff1b; logs是日志 webapps是重点&#xff0c;在这里新建我们自己的javaWeb项目 tomcat如何访问资源 tomcat通过统一资源定位符&#xff08;URL&#xff09;来…

数据分析——业务数据描述

业务数据描述 前言一、数据收集数据信息来源企业内部数据源市场调查数据源公共数据源和第三方数据源 二、公司内部数据客户资料数据销售明细数据营销活动数据 三、市场调查数据观察法提问法实验法 四、公共数据五、第三方数据六、数据预处理七、数据清洗丢弃部分数据补全缺失的…

安卓开发--新建工程,新建虚拟手机,按键事件响应(含:Android中使用switch-case遇到case R.id.xxx报错)

安卓开发--新建工程&#xff0c;新建虚拟手机&#xff0c;按键事件响应 1.前言2.运行一个工程2.1布局一个Button2.2 button一般点击事件2.2 button属性点击事件2.2 button推荐点击事件&#xff08;含&#xff1a;Android中使用switch-case遇到case R.id.xxx报错&#xff09; 本…

PD-L1表达与免疫逃逸和免疫响应

免疫检查点信号转导和癌症免疫治疗&#xff08;文献&#xff09;-CSDN博客https://blog.csdn.net/hx2024/article/details/137470621?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171551954416800184136566%2522%252C%2522scm%2522%253A%252220140713.130102334.…

ollama离线安装,在CPU运行它所支持的哪些量化的模型

在线安装的链接: Download Ollama on LinuxGet up and running with large language models.https://ollama.com/download/linux 离线安装教程: 下载install.sh: https://ollama.ai/install.sh

logback日志持久化

1、问题描述 使用logback持久化记录日志。 2、我的代码 logback是Springboot框架里自带的&#xff0c;所以只要引入“spring-boot-starter”就行了。无需额外引入logback依赖。 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns&…

docker(五):DockerFile

文章目录 DockerFile1、Dockerfile构建过程解析2、DockerFile常用保留字命令FROMMAINTAINERRUNEXPOSEWORKDIRUSERENVADDCOPYVOLUMECMDENTRYPOINT总结 3、案例 DockerFile 1、Dockerfile构建过程解析 官网文档&#xff1a;https://docs.docker.com/reference/dockerfile/ Dock…

【JavaScript】DOM 事件的传播机制

事件与事件流 事件&#xff0c;这里指和网页进行互动。比如点击链接&#xff0c;移动鼠标等网页被触发&#xff0c;做出响应&#xff0c;形成交互。 js 采用事件监听器来监听事件是否发生。 事件流 事件流描述了从页面中接收事件的顺序。当一个事件发生在某个元素上时&…

匿名管道及其应用

目录 一、什么是匿名管道&#xff1f; 三、创建与使用匿名管道 三、匿名管道的特点 匿名管道的四种情况 匿名管道的五种特性 四、匿名管道的实践应用---进程池 在编程的世界中&#xff0c;匿名管道是一种非常重要的通信机制。今天&#xff0c;让我们一起来深入探讨一下匿…

「 安全设计 」68家国内外科技巨头和安全巨头参与了CISA发起的安全设计承诺,包含MFA、默认密码、CVE、VDP等七大承诺目标

美国网络安全和基础设施安全局&#xff08;CISA&#xff0c;CyberSecurity & Infrastructure Security Agency&#xff09;于2024年5月开始呼吁企业是时候将网络安全融入到技术产品的设计和制造中了&#xff0c;并发起了安全设计承诺行动&#xff0c;该承诺旨在补充和建立现…