如果通过"jenkins"关键字搜索进入 Jenkins 官方首页,可能会自动跳转进入https://www.jenkins.io/zh/,当你点击【文档】后就会看到中文版官方文档,该文档是由 jenkins 中文社区提供的。当你切换语言为【English】时,才会看到官方提供的英文版官方文档。

本博客主要是关于文档中采用 Dokcer 安装 Jenkins 部分的说明:中文文档英文文档

中文文档

下面是中文文档中给出的如何在 Docker 中安装 Jenkins 的步骤。

image-20210527115127411

jenkinsci/blueocean

中文文档中推荐安装的镜像是【jenkinsci/blueocean】,通过在 Docker Hub 中搜索到,大家有没有疑惑,这个官方镜像为什么没有打【OFFICIAL IMAGE】标签,然后在 Docker Hub 上通过关键字"jenkins"搜索,可以看到带【OFFICIAL IMAGE】标签的【jenkins/jenkins】镜像。

image-20210527115628489

image-20210527115835450

根据文档的介绍,【jenkinsci/blueocean】镜像中是包含了 jenkins 和 blueocean 插件。

安装步骤

中文文档中给出的 docker 版本的 jenkins 的启动命令如下:

docker run \
  -u root \
  --rm \  
  -d \ 
  -p 8080:8080 \ 
  -p 50000:50000 \ 
  -v jenkins-data:/var/jenkins_home \ 
  -v /var/run/docker.sock:/var/run/docker.sock \ 
  jenkinsci/blueocean 

具体的参数解释可参考文档,这里主要要注意的是-v /var/run/docker.sock:/var/run/docker.sock这行命令的用途,官方解释如下,主要就是用来在 docker 安装的 jenkins 中操作 docker 容器,在介绍了英文文档后,对其作用进行统一的解释。

英文文档

下面是英文文档中给出的如何在 Docker 中安装 Jenkins 的步骤,步骤比较长,截取了部分进行说明,相关 docker 命令参数作用可参考访问文档。下面对其步骤进行一一解释。

image-20210527121128367

jenkins/jenkins

英文文档中推荐安装的镜像是【jenkins/jenkins】,即上面提到的在 Docker Hub 上搜索的带【OFFICIAL IMAGE】标签的官方镜像。然后文档给出了如下说明:

image-20210527122727215

大致意思就是:官方提供的 jenkins/jenkins 镜像没有包含 docker CLI 和 Blue Ocean 插件。如果想要使用 Jenkins 和 Docker 的全部的功能的话,需要按照文档下面给出的安装步骤来安装。

先跳过前面的步骤,直接来看第 4 步。

image-20210527122528622

这里给出了如何对官方给出的【jenkins/jenkins】镜像进行定制化,即制作自己的 docker 镜像。

先看步骤 a 中的 Dockerfile,主要是基于 jenkins/jenkins 镜像,安装了 docker-ce-cli,然后给 jenkins 装上了 blueocean 和 docker-workflow 插件。

然后步骤 b,通过docker build命令制作名为【myjenkins-blueocean】的镜像。

看到这个镜像名,是不是有一种 “恍然大悟” 的感觉,在 Docker Hub 上可以查看【jenkinsci/blueocean】镜像的制作指令,感兴趣的可以去看下,其实【myjenkins-blueocean】就是官方提供的一种制作自己的【jenkinsci/blueocean】镜像的方式。

安装步骤

上面介绍了文档中镜像不同的部分,接下来就是安装步骤。可以看到,中文文档中一步搞定的事情,在英文文档中分为了多个步骤。

是的,其实这两个的作用是一致的,都是为了在 docker 安装的 Jenkins 中执行 docker 命令,只是两份文档提供了两种方案:

总结

建议大家还是多阅读英文文档,毕竟"翻译"还是比较滞后的,英文文档才是第一手资源。但是非常感谢 Jenkins 官方提供的中文文档,就像在看大佬写的文章一样,拓宽了眼界,了解了到技术上更多的可能性。

这次中英文文档的对比,真的让我觉得收获颇多,当我看到【myjenkins-blueocean】和 docker:dind 的时候,真的有种看到了彩蛋的感觉,很多以前看中文文档时的疑惑就自然而然的解开了。


↙↙↙阅读原文可查看相关链接,并与作者交流