我正在运行一个Jenkins Alpine Linux AMD64对接映像,我正在自己构建这个映像,并希望向它添加linux/arm64对接构建支持,以便生成多平台映像,而且我不知道它应该如何工作。
当我检查支持的平台时,我得到:
+ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/386因为我在AMD64图像中。我读到需要为此安装qemu,但我不知道buildx将如何识别它。
这方面的文档相对较少,位于:https://docs.docker.com/buildx/working-with-buildx/。
有谁知道如何在linux/ add 64映像中添加linux/arm64构建功能呢?
我现在看到的唯一解决方案是在实际的arm64系统上构建一个映像。
发布于 2022-01-24 16:19:49
要使用buildx,请确保您的Docker运行时至少是19.03版本。默认情况下,buildx实际上与Docker捆绑在一起,但需要通过设置环境变量DOCKER_CLI_EXPERIMENTAL来启用。
export DOCKER_CLI_EXPERIMENTAL=enabled如果您使用的是Linux,则需要设置binfmt_misc。在大多数发行版中,这是非常容易的,但是现在您可以运行一个特权的Docker容器来为您设置它,这就更容易了。
docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d创建一个新的构建器,它允许访问新的多体系结构特性:
docker buildx create --use --name multi-arch-builder然后,您就可以使用以下工具来构建容器:
docker buildx build --platform=[your target platform] ...这是我在Jenkins管道上使用的设置。
相关文件:
https://stackoverflow.com/questions/70757791
复制相似问题