作为持续集成的利器Jenkins已经得到了广泛地应用,仅仅作为一个工具,Jenkins已然有了自己的生态圈,支持其的plugin更是超过1300+。在实际中如何使用以及如何更好地使用jenkins,一直是大家在实践并讨论的。本系列文章将会从如何使用jenkins方面对一些细节进行总结和整理,这篇文章将会介绍如何在jenkins的容器中进行镜像的构建。
原因
镜像的构建docker build需要damon进程的支持,如果构建者自身本身就在容器之中,这个就是很久之前讨论的很多的docker in docker的情况。而是用更多的方式则是利用docker用于socket通信的socket文件,这篇文章将会详细的介绍这种方式。
准备
这种方式对目前常见的版本一般来说影响不大,这篇文章使用1.13.1的版本进行验证。
宿主机的docker版本:
[root@host154 tools]# docker version
Client:
Version: 1.13.1
API version: 1.26
Go version: go1.7.5
Git commit: 092cba3
Built: Wed Feb 8 08:47:51 2017
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 092cba3
Built: Wed Feb 8 08:47:51 2017
OS/Arch: linux/amd64
Experimental: false
[root@host154 tools]#
启动jenkins在镜像之中
直接使用docker run或者使用docker-compose或者其他方式,将jenkins启动在容器之中,比如:
[root@host154 tools]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46cc37b371cb liumiaocn/jenkins:2.73.3 "run.sh" About a minute ago Up About a minute 0.0.0.