你能把不同的版本和docker组合在一起吗? [英] can you combine separate builds from docker?

查看:16
本文介绍了你能把不同的版本和docker组合在一起吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Cireci部署一个应用程序,我同时部署到AMD和ARM架构,所以我的构建是多拱形的,我一直使用docker Buildx。有了Cireci的新ARM支持,我能够将这个过程的时间从有时使用quemu的3小时减少到大约20分钟,方法是在各自的构建环境中分别构建两者(当您在目标拱门上构建时,不需要使用quemu)。我遇到的情况是,当我运行Buildx命令时,一个构建将完成,将其结果推送到存储库,然后另一个完成并覆盖以前的构建。我试图实现的是将构建的映像合并到单个清单中,以推送在一起,就像我同时构建它们一样。有没有办法在不直接修改清单文件的情况下实现我正在尝试的目标?提供一个实现此目的所需的命令示例将非常有帮助!

提前谢谢!

推荐答案

我知道有两个选项。

首先,您可以让Buildx在多个节点上运行构建,每个节点对应一个平台,而不是使用QEMU。为此,您将使用docker buildx create --append将额外的节点添加到构建器实例。这样做的缺点是,您需要从运行docker buildx的节点访问节点,这可能不适用于短暂的云构建环境。

第二个选项是使用实验性的docker manifest命令。每个构建器都会推送一个单独的标签。在所有这些操作的最后,您将使用docker manifest create构建清单列表,并使用docker manifest push将其推送到注册表。由于这是一个试验性特性,因此您需要export DOCKER_CLI_EXPERIMENTAL=enabled在命令行中查看它。(您还可以将~/.docker/config.json修改为"experimental": "enabled"条目。)

这篇关于你能把不同的版本和docker组合在一起吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆