如何处理不断更新依赖项的 Docker 镜像?

如何处理不断更新依赖项的 Docker 镜像?

我们的系统架构如下:

Artifactory (stores Docker images)
Jenkins (builds software stack)

当触发构建时,Jenkins 会去artifactory 查找 Docker 镜像并将其作为容器运行来构建我们的软件。

我们创建一个 Docker 镜像,其中包含软件构建过程所需的所有依赖项。现在,我们时不时地需要更新依赖项,但这会占用我们跟踪 Docker 镜像的 Artifactory 服务器上的值存储。有没有办法让单独的 Docker 镜像最终在软件构建过程中组合在一起形成最终容器?我们希望避免的是拥有一个需要经常更新的大型单片 Docker 镜像。

答案1

也许没有必要存储docker镜像。

只需为您的镜像创建一个 Dockerfile,并将依赖项放入其中,然后让 Jenkins 通过 docker build [...] 动态构建您的镜像。这样您就可以为不同目的构建小型镜像。

如果您的构建依赖于其他构建部分,您可能会将它们推送到您的 Artifactory 服务器,然后另一个构建容器可以从那里提取它。

另请查看多阶段Dockerbuilds 让您可以轻松地重用您的镜像或直接从父镜像复制工件。

希望这有帮助,TK

相关内容