将Maven和Ant添加到Jenkins Docker容器的正确方法是什么?

我下载了jenkins / jenkins:来自docker hub的映像,我在Ubuntu 16.04上运行起来。 该图像似乎不包括Ant或Maven,也可能想要针对不同版本的jdk进行构build。 我想知道什么是正确的方法来解决这个问题 – 我可以在容器上运行bash并运行apt-get或yum来安装我的构build所需的额外内容,或者有更好的方法吗?

Jenkins可以自动安装Maven和Ant。

首先,通过Manage jenkins > Manage Plugin > Available安装Ant插件并安装Ant插件。

接下来去Manage jenkins > Global tool configuration然后添加Maven和Ant。

一旦构build需要Maven或Ant,它们将被下载并安装。

直接在正在运行的容器中安装工具可能是一个坏主意,因为更改不会持久。 相反,我看到以下选项:

  1. 让jenkins像yamenk提出的那样pipe理你的工具
  2. 克隆jenkinscidocker仓库,并构build您自定义的jenkins镜像,包括您需要的构build工具
  3. 在Docker容器中运行构build作业

最近我成功地使用了选项3:

  • 在Docker容器中运行构build作业(查看Jenkinspipe道插件,或者从shell步骤运行它)
  • 每个构build容器都有一个单独的责任,并提供构build环境所需的所有工具
  • 支持不同的工具和版本是无限的; 新技术可以立即添加

另一个(更棘手的)替代方法是使用Docker Containers作为工具。

我可以推荐以下两篇文章:

https://jenkins.io/blog/2016/08/08/docker-pipeline-environments/

https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/