前言
对着此文章操作之前,确保服务器上的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:最后点击保存,构建就行文章来源:https://www.toymoban.com/news/detail-853413.html
文章来源地址https://www.toymoban.com/news/detail-853413.html
到了这里,关于Docker + Jenkins 自动化部署若依项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!