Docker + Jenkins 自动化部署若依项目

前言
对着此文章操作之前,确保服务器上的Java环境(JDK、MySQL、Redis、Jenkins以及Linux安装Maven)已经装好,如果没有装好,参考我之前的文章。

注意:如果服务器上自己装的又 Nginx ,需要手动停了,要不会导致80端口被占用

1:首先,到若依官网拉去若依分离版项目

在这里插入图片描述

2:拉完之后,在Gitee上面,分别建立两个仓库(前后端分开来存放,因为要用Jenkins分开打包部署)

在这里插入图片描述
3:在前端项目创建 Dockerfile 和 nginx.conf 两个文件
Dockerfile

# 第一阶段
# 使用alpine镜像,可以减少构建后docker镜像文件的体积
FROM node:14-alpine as build-stage

# 设置工作目录
WORKDIR /ruoyi_ui
# 先copy package.json文件到工作目录,一般我们的项目中依赖是不会变的,这样可以充分利用缓存减少部署时的构建时间
COPY package*.json /ruoyi_ui/
# 安装node_modules
RUN npm config set registry=https://registry.npmmirror.com/
RUN npm install
# 将所有文件copy到工作目录
COPY . /ruoyi_ui
# 开始打包
RUN npm run build:prod
# 第二阶段
# 拉取nginx镜像文件
FROM nginx
# 这里的dist文件就是打包好的文件,project是我们上面设置的工作目录
COPY --from=build-stage /ruoyi_ui/dist /usr/share/nginx/ruoyi_ui
# default.conf就是我们项目下面的nginx配置文件,我们需要copy到nginx的相应目录
COPY --from=0 /ruoyi_ui/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

nginx.conf


server{
        # 监听本地的80端口
        listen 80;
        server_name localhost;
        # file_upload_size
        client_max_body_size 10M;
        # request_size
        client_body_buffer_size 128k;

            # 对应的打包文件目录
            #root /usr/share/nginx/food_ui;

            # history路由需要配置,不然刷新会404
            #try_files  $uri $uri/ /index.html;

        location / {
        	        root   /usr/share/nginx/ruoyi_ui;
        		      try_files $uri $uri/ /index.html; # 按此顺序查找请求的文件
                  index  index.html index.htm;
         }

        # 反向代理,解决跨域
        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://116.62.56.41:8080/;
         }
    }

4:在后端项目中添加 Dockerfile 文件

FROM openjdk:8

COPY *.jar /ruoyi-admin.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "/ruoyi-admin.jar"]

5:然后将本地的项目与远程的仓库连接,并且将本地的代码推上去

1.git init
2.git add
3.git    commit    -m    "注释"
4.ait remote add origin (gitee地址)
5.git pull --rebase origin master
6.git push origin master

6:登录上Jenkins,创建任务。
在这里插入图片描述
安装三个插件: Publish Over SSH和Maven Integration和GitLab ,点击: 系统管理->插件管理 -> 可选插件中进行输入安装。如下图所示:
在这里插入图片描述
在这里插入图片描述

全局Git配置:
安装好上一步中的几个插件之后,接下来需要在jenkins中配置一下Git: 点击:系统管理 -> 系统配置 -> 找到Git和SSH

在这里插入图片描述

全局maven配置:

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

后端创建maven风格项目;前端创建自由风格项目。
下面给一些Jenkins配置文档。
前端文档:
在这里插入图片描述
在这里插入图片描述

# 先删除之前的容器和镜像文件
if [ "$(docker ps -a | grep ruoyi_ui)" ]; then
    docker stop ruoyi_ui
    docker rm ruoyi_ui
fi
if [ "$(docker images -q ruoyi_ui)" ]; then
    docker rmi ruoyi_ui
fi

# 重新生成
docker build -t ruoyi_ui .
docker run  -itd -p 9999:80 --name ruoyi_ui ruoyi_ui

后端文档:

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

clean package -Dmaven.test.skip=true

在这里插入图片描述

#!/bin/bash
# 服务名称
SERVER_NAME=ruoyi-java
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=ruoyi-admin
# jenkins下的目录
JENKINS_HOME=/var/jenkins_home/workspace/ruoyi-java
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "结束进程完成"
cd $JENKINS_HOME
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/ruoyi-admin/target
cd $JENKINS_HOME/ruoyi-admin/target
# 修改文件权限
chmod 755 $JAR_NAME.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop ruoyi-admin
echo "删除容器"
# 删除容器
docker rm ruoyi-admin
echo "删除镜像"
# 删除镜像
docker rmi ruoyi-admin
echo "打包镜像"
# 打包镜像
docker build -t ruoyi-admin .
echo "运行镜像"
# 运行镜像
docker run -d -p 8080:8080 --name ruoyi-admin ruoyi-admin

7:最后点击保存,构建就行

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

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值