当我想要使用 Docker 创建多架构构建时,我使用以下命令:
docker buildx build --push --platform <list of archs> -t <tag1> -t <tag2> .
这个工作完全正常,但似乎是同时构建图像。在大多数情况下,这可能是可以接受的,但在某些情况下,这似乎太沉重了,需要太多的RAM并导致网络故障(太多的并行连接)。
有没有办法按顺序构建图像?
我找到的唯一解决方案是分别为每个架构构建,然后使用“docker manifest create”进行组合:
docker buildx build --push --platform <arch1> -t <tag-arch1> .
docker buildx build --push --platform <arch2> -t <tag-arch2> .
[...]
docker manifest create ... --amend ...
docker manifest push
这可能没问题,但似乎每个图像都应该被推送到注册表中,以便"docker manifest create"能够进行组装。这并不是很好,因为它会污染我不想要的标签和图像列表。
是否有可能在本地图像上使用"docker manifest create",而无需将每个图像单独带有标签上传到注册表中?有没有更好的方法来顺序构建图像呢? 谢谢!