# 实用 Jenkins Docker 镜像

> Jenkins 跟 GKE 的 Load Balancer 不兼容怎么办？当然是选择原谅他啊。

最近在玩 Google 的 Container Engine，发现 Jenkins 的安装过程的安全防护跟 GKE 的负载均衡器有点不和谐。要在启动初始化过程之前，完成对 CSRF 特性的调整。弄着弄着就收不住了，所以就有了对我那个 “要你命3000” Jenkins 镜像的一次大升级。

## 主要功能

- 分为 Alpine 和 Ubuntu 两个基础版本。
- 内嵌多种 CI/CD 相关工具，例如 git、robotframework with selinium、mvn、nodejs 等。
- 可越过初始化过程，直接指定既有的 config.xml。
- 可定制的初始化 Groovy 脚本。
- 可直接设置一号用户的用户 ID 和密码。

## 更重要的功能

这一版加入了一个神奇的脚本：`install-plugins.sh`，这一脚本能够自动安装指定插件极其依赖，配合上面的自定义 Groovy 脚本和 config.xml 功能。就方便的打造符合个人口味的、开箱即用的 Jenkins 镜像了，例如加入 git 支持，只需 `install-plugins.sh git` 即可。下面的 Dockerfile 会建立一个带有 docker-build-step 和 git 支持的，用户名密码分别为 'admin' 和 'password' 的镜像：

~~~dockerfile
FROM dustise/jenkins
RUN install-plugins.sh git
RUN install-plugins.sh docker-build-step
ENV ADMIN_USER="admin"
ENV ADMIN_PASSWORD="password"
~~~

[Github 项目地址](https://github.com/fleeto/docker-jenkins)或者用下面的命令直接运行：

~~~bash
docker run -it -p 3001:8080 --rm
-e ADMIN_PASSWORD="MY_PaSS_W0rd"
-e ADMIN_USER="administrator"
--name=jenkins
dustise/jenkins:latest
~~~
