将RuoyiCloud部署到云上环境 RuoyiCloud地址: https://gitee.com/y_project/RuoYi-Cloud
默认RuoyiCloud已可以在本地启动,且前台正常登录

本次部署使用kubeSphere,为Linux单节点部署,有条件可以多节点
使用的服务器为阿里云ECS,8c16g
kubeSphere的安装参考之前的文章

云上部署分为以下几个环节

1. 中间件部署

部署RuoyiCloud所需中间件
Mysql,Redis,Nacos

2. 微服务部署

将RuoyiCloud的各个组件打包成镜像发布

2.1 开通阿里云容器镜像服务

其他类似容器服务也可以

2.2 docker登录

# 登录
docker login --username=德玛西亚所向披靡 registry.cn-wulanchabu.aliyuncs.com

# 输入开通容器服务的密码

2.3 打包镜像

2.3.1 准备Dockerfile

ruoyi项目里已经有基本的Dockerfile,修改下即可使用

2.3.1.1 前端Dockerfile
# 基础镜像
FROM nginx
# author
MAINTAINER zy

# 挂载目录
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

2.3.1.2 后端微服务Dockerfile

后端做了通用的配置,在启动时指定镜像为prod,并指定生产环境nacos

# 基础镜像
FROM  openjdk:8-jdk
# author
MAINTAINER zy

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
# 复制jar文件到路径
COPY target/*.jar /app.jar
# 启动服务
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]

2.3.2 打包镜像

将jar包和Dockerfile上传到安装了docker的机器
目录如下:
image.png
后端jar包放置于target中,符合Dockerfile中指定的目录
image.png
前端包放置于html中,符合Dockerfile中指定的目录
image.png

2.3.2.1 编译镜像&推送镜像到阿里云
# 编译命令  -f [Dockerfile文件] 可以省略,默认寻找当前目录下Dockerfile文件
docker build -t [镜像名:版本] -f [Dockerfile文件] .
example:
docker build -t ry-system:v1 -f Dockerfile .

# 打标签 使标签符合阿里云容器镜像服务的标准
docker tag [imageid] [新的标签]
example:
docker tag [system的镜像id] registry.cn-wulanchabu.aliyuncs.com/mydocker_zy/ry-system:v1

# 推送镜像 在docker login成功的前提下
docker push [tag:版本号]
example:
docker push registry.cn-wulanchabu.aliyuncs.com/mydocker_zy/ry-system:v1

2.4 部署到kubeSphere

推送到阿里云之后,就可以像部署中间件一样拉取阿里云镜像手动部署

3. 网络环境

需要在k8s环境下联通微服务和各个中间件的网络环境,一般为局域网内连接,不走公网
同样在k8s的搭建中我们看到可以在集群内部使用ClusterIP的方式在集群内部互连

4. 配置分离

即本地环境和生产环境的配置可能不一样,需要配置隔离开,一般通过配置中心解决

Logo

快速构建 Web 应用程序

更多推荐