持续集成之jenkins实践教程:基础篇(5): 集成docker

来源:互联网 发布:python写淘宝秒杀脚本 编辑:程序博客网 时间:2024/05/17 23:56

这里写图片描述
作为持续集成的利器Jenkins已经得到了广泛地应用,仅仅作为一个工具,Jenkins已然有了自己的生态圈,支持其的plugin更是超过1300+。在实际中如何使用以及如何更好地使用jenkins,一直是大家在实践并讨论的。本系列文章将会从如何使用jenkins方面对一些细节进行总结和整理,这篇文章将会介绍如何在Jenkins中实现与docker的集成

事前准备

只要有jenkins即可,没有的可以使用Jenkins官方的镜像或者安装包,或者使用Easypack中封装的基本一致的Jenkins。

docker pull镜像

[root@liumiaocn ~]# docker pull liumiaocn/jenkinsUsing default tag: latestlatest: Pulling from liumiaocn/jenkinsDigest: sha256:87c954f71bc3ce1ba5d001bfbae501f9965368c16f0111ef951350376c2f6832Status: Image is up to date for liumiaocn/jenkins:latest[root@liumiaocn ~]#

启动Jenkins镜像
docker run -d -p 8090:8080 -p 50000:50000 –name jenkins liumiaocn/jenkins

[root@liumiaocn ~]# docker run -d -p 8090:8080 -p 50000:50000 --name jenkins liumiaocn/jenkins63dc2d52de03074858a6b61db4955345a66cfd436c5a47384924e9e3f8177778[root@liumiaocn ~]#

plugin

与docker的集成也是通过插件来做的, 这里选择的是安装docker-build-step插件,目前版本是1.4.3,通过使用这个插件进行集成能够使得在jenkins中执行很多docker的操作诸如:

项番 详细 No.1 commit changes in specified container No.2 create new container from image No.3 create image from Dockerfile No.4 create exec command No.5 kill container(s) No.6 pull image from a repository No.7 push image to a repository No.8 remove container(s) No.9 remove all containers No.10 restart container(s) No.11 start container(s) No.12 stop container(s) No.13 stop all containers No.14 start/stop all containers created from specified image No.15 start exec command

详细说明如下图所示

这里写图片描述

安装

可以使用jenkins的插件管理页面进行安装,也可以使用其id(docker-build-step)在镜像中进行安装并重启镜像即可。

[root@liumiaocn ~]# docker exec -it jenkins sh/ $ install-plugins.sh docker-build-stepCreating initial locks...Analyzing war...Downloading plugins...Downloading plugin: docker-build-step from https://updates.jenkins.io/download/plugins/docker-build-step/latest/docker-build-step.hpi > docker-build-step depends on credentials:1.22,docker-commons:1.4.0Downloading plugin: credentials from https://updates.jenkins.io/download/plugins/credentials/latest/credentials.hpiDownloading plugin: docker-commons from https://updates.jenkins.io/download/plugins/docker-commons/latest/docker-commons.hpi > credentials depends on structs:1.7Downloading plugin: structs from https://updates.jenkins.io/download/plugins/structs/latest/structs.hpi > docker-commons depends on icon-shim:1.0.3,credentials:2.1.11,credentials-binding:1.12,authentication-tokens:1.1Downloading plugin: icon-shim from https://updates.jenkins.io/download/plugins/icon-shim/latest/icon-shim.hpiDownloading plugin: credentials-binding from https://updates.jenkins.io/download/plugins/credentials-binding/latest/credentials-binding.hpiDownloading plugin: authentication-tokens from https://updates.jenkins.io/download/plugins/authentication-tokens/latest/authentication-tokens.hpi > authentication-tokens depends on credentials:1.22 > credentials-binding depends on workflow-step-api:2.9,credentials:2.1.7,plain-credentials:1.3,structs:1.5Downloading plugin: workflow-step-api from https://updates.jenkins.io/download/plugins/workflow-step-api/latest/workflow-step-api.hpiDownloading plugin: plain-credentials from https://updates.jenkins.io/download/plugins/plain-credentials/latest/plain-credentials.hpi > workflow-step-api depends on structs:1.5 > plain-credentials depends on credentials:2.1.5WAR bundled plugins:Installed plugins:authentication-tokens:1.3credentials-binding:1.12credentials:2.1.14display-url-api:2.0docker-build-step:1.43docker-commons:1.7git-client:2.4.6git:3.3.1gitlab-plugin:1.4.6icon-shim:2.0.3jquery:1.11.2-0junit:1.20mailer:1.20mapdb-api:1.0.9.0matrix-project:1.11plain-credentials:1.4redmine:0.20scm-api:2.1.1script-security:1.29sonar:2.6.1ssh-credentials:1.13structs:1.9subversion:2.8workflow-scm-step:2.6workflow-step-api:2.12Cleaning up locks/ $ exit[root@liumiaocn ~]# docker restart jenkinsjenkins[root@liumiaocn ~]#

插件安装确认

重新启动后确认此插件已经安装完毕
这里写图片描述

设定内容

系统管理 -> 系统设置处的Gitlab相关内容则为所需设定的内容

设定项目 设定方法 设定内容 docker的URL Docker Builder-> Docker URL 可以访问的docker的URL

这里写图片描述

验证

设定完毕之后,点击Test Connection便可以确认jenkins和docker之间是否通过此插件进行了集成。页面显示”Connected to tcp://192.168.32.131:4243”说明已经OK。
这里写图片描述

总结

Jenkins与docker设定需要下载并安装docker-build-step插件,通过设定docker URL便可以使用插件提供的测试功能进行集成连接确认。

原创粉丝点击