docker搭建jenkins

使用docker搭建jenkins

jenkins目前官方有三个镜像,jenkins,jenkins/jenkins,和jenkins/jenkins:lts。其中 jenkins/jenkins 是每周更新,jenkins/jenkins:lts 是长期支持版本,而目前的 jenkins 镜像则会被废弃以更好的支持 jenkins/jenkins:lts 。

  • 创建jenkins文件夹存储数据

  • 创建docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '3.1'

services:
jinkins:
container_name: jenkins
hostname: jenkins
image: jenkins/jenkins:lts
networks:
- default
- dbnetwork
ports:
- 10080:8080
- 50000:50000
volumes:
- ~/dbs/jenkins:/var/jenkins_home

networks:
dbnetwork:
external: true
  • 启动,访问localhost:10080,配置jenkins并使用。

使用jenkins构建项目

配置jenkins,gitlab

  • jenkins配置jdk,maven,gradle

Manage jenkins=>Global Tool Configuration

JDK有多种方式,如果有挂载jdk可直接配置路径使用;

也可以采用从官网下载自动安装(需要Oracle账号);

或者自定义下载地址..etc

Gradle 和 Maven 相同。

  • jenkins生成sshkey
1
2
3
4
5
6
7
8
9
docker exec -it jenkins /bin/bash

mkdir ~/.ssh

cd ~/.ssh

ssh-keygen -t rsa

cat id_rsa.pub
  • 将jenkins的公钥配置到gitlab账户中

gitlab-add-sshkey

  • 新建job,填入名称并选择freestyle类型

jenkins-new-item

  • 配置source为git,填入地址,并添加认证方式,因之前配置了gitlab的sshkeys,这里也使用ssh方式

jenkins-add-source

jenkins-add-sshkey

  • 配置触发Build行为,这里由webhook触发,点击advanced,配置哪些事件哪些分支触发,并点击Generate生成Secret token。

jenkins-gitlab-trigger

jenkins-gitlab-token

  • 在gitlab项目的设置-集成中配置webhook,填入对应的url,将jenkins的Secret Token拷贝并填写进来,并关闭SSL验证

gitlab-webhook

  • 在jenkins配置build,我这里示例是maven项目,选择Invoke top-level Maven targets,配置maven版本,以及goals,在Advanced中还可配置pom文件,setting.xml文件等

jenkins-maven-select

测试

push代码,测试是否有进行maven package。在jenkins控制台能看见进程。

jenkins-project

jenkins-console

待package完成后,在workspace的target下即能找到对应的jar文件了。

jenkins-workspace


参考