目录
前言
本文介绍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是否会自动构建
自动构建成功!!!
欢迎留言,学习交流