前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitLab+Jenkins+Maven+Docker实现自动集成、打包、部署

GitLab+Jenkins+Maven+Docker实现自动集成、打包、部署

作者头像
全栈程序员站长
发布2022-06-29 17:33:08
1K0
发布2022-06-29 17:33:08
举报
文章被收录于专栏:全栈程序员必看

目录⭐

自动集成流程:


1. 开发人员将代码上传到Gitlab代码管理平台 2. 创建jenkins自动化任务,安装maven、gitlab webhook插件实现自动检测代码管理平台的项目代码变动,自动进行打包、部署。 3. 将打好的jar包发布到docker上

流程图:


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

环境准备

IP

服务

配置

192.168.1.10

GitLab、Maven、JDK、Git

2C4G

192.168.1.20

Jenkins、Maven、JDK、Git

2C4G

192.168.1.30

Docker

2C4G

Java环境安装


参考链接👇https://blog.csdn.net/weixin_46152207/article/details/114528939

Git工具安装


参考链接👇 https://blog.csdn.net/weixin_46152207/article/details/114526410

Maven工具安装


参考链接👇 https://blog.csdn.net/weixin_46152207/article/details/114528918

GitLab代码管理仓库安装


详细安装步骤链接👈

Jenkins自动集成工具安装


详细安装步骤链接👈

Docker安装

详细安装步骤参考链接👈

三台服务器进行免密登录

gitlab

代码语言:javascript
复制
ssh-keygen
ssh-copy-id -i 192.168.1.20
ssh-copy-id -i 192.168.1.30

jenkins

代码语言:javascript
复制
ssh-keygen
ssh-copy-id -i 192.168.1.10
ssh-copy-id -i 192.168.1.30

docker

代码语言:javascript
复制
ssh-keygen
ssh-copy-id -i 192.168.1.10
ssh-copy-id -i 192.168.1.20

GitLab+Jenkins+Maven+Docker整合

Gitlab创建一个新的项目

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

GitLab部署SSH密钥

gitlab服务器获取密钥

代码语言:javascript
复制
ssh-keygen #回车 刚才做过免密登录就不需要操作了

查看公钥

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

进入gitlab页面进行设置密钥

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

Jenkins创建任务

记得安装maven插件、gitlab webhook插件 没有maven插件不能创建maven项目 没有gitlab webhook插件,不能检测gitlab仓库代码变动实现自动计划

新建maven项目

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

源码管理 复制GitLab中discovery项目的SSH地址

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

报错:无法进行链接 添加凭证

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

查看gitlab服务器上的密钥

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

选择刚才创建的凭证

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

构建触发器 选择当GitLab的项目中代码变化时,Jenkins进行构建任务

图中的URL是在GitLab的设置中需要使用的

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

点击触发器中的“高级”,生成一串token值,用于GitLab与Jenkins集成使用

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

Build 执行构建时,对项目进行打包

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

Post Steps 当构建运行成功后,将jar包传送到tomcat主机的tomcat网页根目录下自动部署

scp /var/lib/jenkins/workspace/discovery/target/*.jar root@192.168.1.30:/root/

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

进入项目中,进行与Jenkins的集成

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

这里的URL和token值就是在Jenkins的任务配置时,构建触发器

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

生成测试项目

gitlab服务器拖入项目包,进行上传代码 上传代码成功后,jenkins自动化任务就会进行执行

代码语言:javascript
复制
 cd nego-web-dev/
 git init
 git add .
 git config --global user.email "zidingyi@gmail.com"
 git config --global user.name "zidingyi"
  git commit -m "discovery"
 git remote add discovery git@192.168.1.10:root/discovery.git
  git push -u discovery  master

成功发布到docker主机上

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

编写自动部署脚本

此次脚本编写较简单,就是为了达到实验目的,投入使用的话再根据自己的需要进行增加功能!

docker

代码语言:javascript
复制
[root@docker ~]# cat update.sh 
#!/bin/bash
echo "+-------------------------------------+"
echo "| 服务发布脚本 |"
echo "+-------------------------------------+"
jar=`ls | grep jar$`
name=`ls | grep jar$ | awk -F '-1' '{print $1}'`
image=$name':latest'
dockerfile () {
   
cat > dockerfile <<EOF FROM java:8 ADD ./$jar /data/$jar WORKDIR /data/ CMD ["sh","-c","java -jar $jar"] EOF
}
images () {
   
docker build -t $image .
}
fabu () {
   
docker run -itd --name $name $image
}
clearfile () {
   
 rm -rf /app/dockerfile
}
dockerfile
images
if [ $name == nego-web ]
then
 docker run -itd -p 8761:8761 --name $name $image
fi
代码语言:javascript
复制
chmod +x update.sh

jenkins

代码语言:javascript
复制
[root@jenkins ~]# cat update.sh 
scp /var/lib/jenkins/workspace/discovery/target/*.jar root@192.168.1.30:/root/
ssh 192.168.1.30 /root/update.sh
在这里插入图片描述
在这里插入图片描述

测试模拟项目发布

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

成功

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101804.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年6月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录⭐
  • 自动集成流程:
  • 流程图:
  • 环境准备
    • Java环境安装
      • Git工具安装
        • Maven工具安装
          • GitLab代码管理仓库安装
            • Jenkins自动集成工具安装
              • Docker安装
                • 三台服务器进行免密登录
                • GitLab+Jenkins+Maven+Docker整合
                  • Gitlab创建一个新的项目
                    • GitLab部署SSH密钥
                      • Jenkins创建任务
                        • 生成测试项目
                          • 成功发布到docker主机上
                          • 编写自动部署脚本
                            • 测试模拟项目发布
                            • 成功
                            相关产品与服务
                            容器镜像服务
                            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档