前文导航
Docker决战到底(一) 虚拟机中安装ubuntu系统
Docker决战到底(二) Docker环境搭建
Docker决战到底(三) Rancher2.x的安装与使用
Docker决战到底(四) Jenkins的安装与使用
一、前言概要
本篇实践记录主要围绕制作一个自己的jenkins镜像而展开,前提是需要你了解怎么制作一个镜像,如果你还不了解,那么建议你先阅读docker官方文档 编写Dockerfiles的最佳实践 。 在 上一篇 中,我们从jenkins中构建的 restful-api-demo 也使用到了自己制作的Dockerfile,只是它是基于springboot开发的web应用来制作的,你也可以参考一下,在以后你自己开发类似应用服务时应该能用上。
在 docker决战到底(四) Jenkins的安装与使用 中,我们使用的是官方的jenkins/jenkins:alpine镜像,启动镜像后还需要经过一系列操作,如我们对maven的安装以及配置,这样的操作可能你在另一台计算机上部署相同的jenkins时也需要做出同样的操作,这时候我们就有必要制作一个自己的jenkins镜像,把相同操作过程固定到镜像中。当然,不只是针对jenkins,当有类似情况时,你应该学会举一反三。
那么接下来,我们就开始编写一个Dockerfile来制作jenkins镜像,这个镜像将会满足如下功能:
- 沿用官方jenkins/jenkins:alpine镜像的所有功能
- 能够作为docker客户端直接使用docker命令(共用宿主机docker.sock),就是所谓的DooD (Docker outside of Docker)
- 集成maven并使用自定义的maven配置
二、编写Dockerfile
宿主机执行命令,在家目录下创建一个dockerfiles/jenkins文件夹用来存放我们的配置文件以及Dockerfile文件
$ cd ~
$ mkdir -p dockerfiles/jenkins
在jenkins目录下创建两个文件,分别是settings.xml与Dockerfile
$ cd dockerfiles/jenkins
$ touch settings.xml Dockerfile
编辑settings.xml,主要是对maven的repository与mirror进行配置,内容如下
<?xml version="1.0" enco