云原生RuoYiCloud容器化上云部署实战

一、简介

之前我们已经部署了Nacos部署、数据库MySQL部署 中间件Redis部署。接下来我们开始进行微服务上云部署!


二、部署微服务后端项目

2.1 上云流程

  1. 打jar包
  2. 制作镜像
  3. 推送镜像到仓库(阿里云镜像仓库)
  4. 应用部署

2.2 Nacos配置

     在上一篇nacos安装部署时我们连接了mysql数据库,里面包含服务的配置信息。

    下面我们新建一个prod的命名空间,上云后使用正式环境配置文件:

在这里插入图片描述

在这里插入图片描述云原生RuoYiCloud容器化上云部署实战_第1张图片 

2.3 Dockerfile 文件 

FROM openjdk:8-jdk
# 作者
LABEL maintainer=LiuShihao


#docker run -e PARAMS="--server.port 9090"  注意修改为自己的Nacos地址
ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=his-nacos.his:8848 --spring.cloud.nacos.config.server-addr=his-nacos.his:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml"
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

COPY target/*.jar /app.jar
# 暴露8080端口  因为每个Pod都相当于是一台独立的主机 所以不会端口冲突
EXPOSE 8080

#
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]

即会将target目录下的jar包 复制到 镜像中 /目录下 为app.jar

在这里插入图片描述

我们将jar包和Deckerfile文件上传到云服务器上:

在这里插入图片描述

2.4 制作镜像

上传完成之后进行解压:

在这里插入图片描述

在这里插入图片描述

使用docker build命令制作镜像:docker build -t ruoyi-auth:v1.0 -f Dockerfile .

在这里插入图片描述 我们重复之前的步骤,制作出剩下的镜像: docker images|grep ruoyi
可以直接使用shell脚本来制作镜像vim dockerbuild.sh

#!/bin/env bash
cd /root/dockerImages/ruoyi-auth
docker build -t ruoyi-auth:v1.0 -f Dockerfile .
cd ..
cd /root/dockerImages/ruoyi-file
docker build -t ruoyi-file:v1.0 -f Dockerfile .
cd ..
cd /root/dockerImages/ruoyi-gateway
docker build -t ruoyi-gateway:v1.0 -f Dockerfile .
cd ..
cd /root/dockerImages/ruoyi-job
docker build -t ruoyi-job:v1.0 -f Dockerfile .
cd ..
cd /root/dockerImages/ruoyi-monitor
docker build -t ruoyi-monitor:v1.0 -f Dockerfile .
cd ..
cd /root/dockerImages/ruoyi-system
docker build -t ruoyi-system:v1.0 -f Dockerfile .

赋可执行权限 chmod +x dockerbuild.sh

在这里插入图片描述

2.5 镜像仓库

新建一个命名空间:

 在这里插入图片描述

在这里插入图片描述

# 登录
docker login --username=lius****aowyt registry.cn-shanghai.aliyuncs.com
# 打标签
docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-auth:[镜像版本号]
# 推送镜像
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-auth:[镜像版本号]

 登录阿里云镜像仓库:

给镜像打上标签:docker tag 0b7cc69aadd8 registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-auth:1.0

在这里插入图片描述

推送镜像:docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-auth:1.0

在这里插入图片描述 在这里插入图片描述

重复上面的操作将其他镜像推送到仓库: 

# 给所有镜像打标签
docker tag 0b7cc69aadd8 registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-auth:1.0
docker tag cd2945759213 registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-file:1.0
docker tag 1d8f0003bdb8 registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-gateway:1.0
docker tag cc5f7e7074e5 registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-job:1.0
docker tag d328c7686524 registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-monitor:1.0
docker tag dce6da82edf4 registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-system:1.0
# 推送镜像
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-auth:1.0
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-file:1.0
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-gateway:1.0
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-job:1.0
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-monitor:1.0
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-system:1.0

在这里插入图片描述

2.6 创建阿里云仓库秘钥

在这里插入图片描述云原生RuoYiCloud容器化上云部署实战_第2张图片 

2.7 创建无状态服务

在这里插入图片描述

也可以直接选择镜像:

在这里插入图片描述 协议选择TCP 端口8080

在这里插入图片描述

不需要外网访问。

在这里插入图片描述

 微服务部署完成

 我们将所有的微服务按照流程全部部署:

  1. 打包
  2. 制作镜像
  3. 上传镜像仓库
  4. 修改Nacos配置
  5. 创建无状态副本集
  6. 查看容器日志确认部署是否成功

在这里插入图片描述

最后我们可以在Nacos的服务列表查看我们部署的项目:

在这里插入图片描述


三、部署前端项目 

进入 ruoyi-ui 目录,需要修改vue.config.js文件中的target地址,这个地址在项目中是请求网关服务的地址,所以我们需要修改为我们部署的网关服务的内网IP或者域名。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后运行打包命令:npm run build:prod

在这里插入图片描述

打包完成后会生成dist目录。

3.1 Dockerfile 文件

# 基础镜像
FROM nginx
# author
MAINTAINER ruoyi

# 挂载目录
VOLUME /home/ruoyi/projects/ruoyi-ui
# 创建目录
RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
# 指定路径
WORKDIR /home/ruoyi/projects/ruoyi-ui
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制html文件到路径
COPY ./html/dist /home/ruoyi/projects/ruoyi-ui

 有一个COPY的操作:
是将html目录下的dist目录复制到容器内的/home/ruoyi/projects/ruoyi-ui地址。
dist就是我们打包好的前端文件。

在这里插入图片描述

在这里插入图片描述

3.2 Nginx配置

修改nginx,cong配置文件:

  1. 修改server_name 为 _
  2. 修改RuoYi网关服务的域名。

 在这里插入图片描述

3.3 上传服务器

将nginx目录压缩上传服务器:

在这里插入图片描述

3.4 制作镜像

上传到服务器后解压后进入目录

# 解压
unzip nginx.zip
# 修改dockerfile文件名为Dockerfile
mv dockerfile Dockerfile

 在这里插入图片描述

制作镜像:docker build -t registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-ui:2.0 -f Dockerfile .

在这里插入图片描述

# 查看镜像
docker images |grep ruoyi-ui
在这里插入图片描述

3.5 上传镜像仓库

# 登录镜像仓库
docker login --username=lius****wyt registry.cn-shanghai.aliyuncs.com
# 推送镜像
docker push registry.cn-shanghai.aliyuncs.com/lsh_ruoyi/ruoyi-ui:2.0

 3.6 部署无状态服务

选择镜像:

在这里插入图片描述

注意Nginx需要指定端口为:80

在这里插入图片描述

注意需要选择外网暴露:

在这里插入图片描述

创建完成。 


四、测试

至此,RuoYi微服务项目的前后端部署都以完成了。

通过任意主机的公网IP加上暴露的端口进行访问测试:

 在这里插入图片描述

账号:admin
密码:admin123

 在这里插入图片描述


五、健康检查器,来做一个就绪检查

注意:需要先将MySQL、Redis服务启动完成后,才能将Nacos启动成功,RuoYi微服务才能启动成功。
如果服务没有启动成功,有可能是因为依赖的中间件或者服务还为启动成功,重新部署即可。

我们可以设置一个健康检查器,来做一个就绪检查:

 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

你可能感兴趣的:(kubesphere,k8s)