CI/CD 基于GitLab + Jenkins + Maven自动化部署服务

目录

前言

本文介绍GitLab + Jenkins + Maven部署服务(文中以Springboot项目为例)。

GitLab 社区版 11.1.4 (docker安装)点击查看安装教程

Jenkins 2.263.2 (docker安装)点击查看安装教程

Maven 3.6.3

准备工作

查看Jenkins容器中Java和Maven的安装。本文用的Jenkins是基于docker安装的,如果是直接在宿主机安装的情况,要在宿主机安装Git、Maven等基本环境。

# 查看容器
docker ps 
# 交互式进入容器
docker exec -it <容器ID> bash
# 测试Java、maven、git是否都已经安装
git version
mvn -v
java -v

安装除推荐安装外的插件

  • 系统管理 -> 插件管理 -> 可选插件
  • 搜索GitLab
  • 勾选 GitLab、GitLab Hook
  • 点击直接安装
  • 安装完成后,重启Jenkins。

配置全局系统参数

系统管理 -> 全局工具配置

说明:这里主要配置maven、jdk等参数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击【应用】或者【保存】

配置GitLab免密登录

进入Jenkins容器中

cd ~
ls -al
# 生成秘钥,可不填写,三次回车(也可根据具体提示,填写信息)
ssh-keygen -t rsa

在这里插入图片描述

cd .ssh
ls -al
# jenkins@0d8b70ba5cec:~/.ssh$ ls -al
# total 12
# drwx------.  2 jenkins jenkins   38 Jan 28 14:21 .
# drwxrwxrwx. 17 root    root    4096 Jan 28 14:21 ..
# -rw-------.  1 jenkins jenkins 1675 Jan 28 14:21 id_rsa # 私钥
# -rw-r--r--.  1 jenkins jenkins  402 Jan 28 14:21 id_rsa.pub # 公钥

# 查看公钥
cat id_rsa.pub

登录GitLab -> 选择项目 -> 点击头像 -> 设置 -> ssh密钥

将刚才生成的公钥内容复制到这里

在这里插入图片描述

【手动测试】回到Jenkins容器中尝试能否拉取代码

cd ~
mkdir test-dev
cd test-dev
git clone ssh://git@192.168.0.12:2222/jiacs/ceshi.git
# 成功拉取代码即可
cd ..
# 删除刚才创建的文件夹
rm -rf test-dev

新建Jenkins任务

填写任务名称选择流水线

在这里插入图片描述

  • 构建触发器

在这里插入图片描述

点击【高级】,生成【Secret token】

  • GitLab添加web hook

在这里插入图片描述

【链接(URL)】Jenkins中构建触发器中的请求地址http://192.168.0.12:8081/project/spring-boot-test

【安全令牌】刚才生成的【Secret token】

点击【增加web钩子】

  • 回到Jenkins编写Pipeline
node{
    def mvnHome
    stage('Prearation'){
        git 'ssh://git@192.168.0.12:2222/jiacs/ceshi.git'
    }
    stage('Maven Build'){
        sh 'mvn clean package'
    }
    stage('Build Image'){
        sh 'docker build -t spring-boot-test . '
    }
    stage('Sleep'){
        sh 'sleep 1s'
    }
    stage('Remove Container'){
        sh 'docker rm -f spring-boot-test'
    }
    stage('Remove Image'){
        sh 'docker rmi -f $(docker images -q -f dangling=true)'
    }
    stage('Start Container'){
        sh 'docker run --name spring-boot-test -d -p 11111:11111 spring-boot-test'
    }
}

构建项目

  • 手动构建

点击立即构建,等待构建

在这里插入图片描述

  • 自动构建

提交代码push到GitLab,检查Jenkins是否会自动构建

在这里插入图片描述

自动构建成功!!!
欢迎留言,学习交流

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

゛ゞ旁觀者ヾ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值