在docker容器中安装包

我想知道如何在Docker容器中安装包。 我的用例是,我有一个jenkins服务器,只有几种代理,包括一个docker代理模板,如果没有虚拟机环境,默认情况下会导致一个docker容器被创build,并被用于每个没有默认标签的构build。 问题是,如果可能的话,如何以一种安全的方式,在这样一个docker容器中构build之前安装依赖关系? 我不认为为不同的项目提供不同的需求是一个很好的想法,每次某个项目需要依赖项时修改单个图像可能会使这个图像膨胀,以防我需要这些图像。 但通常,出于安全原因,容器内部不存在根访问权限。 如何应对这种情况/有什么可能的select?

Jenkins允许您指定将在其中创build代理的泊坞窗图像。

例:

agent { docker { image 'maven:3-alpine' label 'my-defined-label' args '-v /tmp:/tmp' } } 

如果您在dockerhub上找不到包含必要依赖关系的公共图像,则需要创build一个自定义图像。 做到这一点的方法是创build一个Dockerfile并在其中安装依赖项。

 FROM base-image RUN apt-get update && apt-get install ... 

然后,您可以使用此Dockerfile构build代理,也可以构build一个映像并将其放在jenkins主机上,并使用上述pipe道语法来configuration代理。

您可以直接使用Dockerfile:

 agent { dockerfile { dir 'path-to-Dockerfile' } }