如何从 x86_64 的源代码构建 docker-compose 容器和一个 arm arch? (请在提交前提供带有 `from` 的源图像)

How do I build docker-compose container from source for x86_64 and an arm arch? (Please provide a source image with `from` prior to commit)

我正在尝试从源构建 docker-compose 容器。最终我想要两个这样的容器,一个用于 x86_64,一个用于手臂拱形。我看到我可以使用此脚本 https://github.com/docker/compose/releases/download/1.25.5/run.sh 获得 x86 兼容容器,但我需要能够从源代码构建。我克隆了 compose 存储库并尝试了两件事,首先只是尝试使用存储库中的 Dockerfile 进行构建。结果:

>docker build -t docker-compose .
Sending build context to Docker daemon 1.872 MB
Step 1/39 : ARG DOCKER_VERSION=19.03.8
Please provide a source image with `from` prior to commit

然后我查看了 script/build 中的构建脚本并尝试执行 linux 构建脚本。

> script/build/linux
+ ./script/clean
++ script/build/write-git-sha
+ DOCKER_COMPOSE_GITSHA=9c5351cf
+ TAG=docker/compose:tmp-glibc-linux-binary-9c5351cf
+ docker build -t docker/compose:tmp-glibc-linux-binary-9c5351cf . --build-arg BUILD_PLATFORM=debian --build-arg GIT_COMMIT=9c5351cf
Sending build context to Docker daemon 1.872 MB
Step 1/39 : ARG DOCKER_VERSION=19.03.8
Please provide a source image with `from` prior to commit

我被困在这里了。我对 arm 容器的计划是使用 linux 构建脚本,但将 ARCH 交换到我的 arm 架构。任何帮助将不胜感激

如果有人遇到这个问题,我会回答这个问题,因为我已经解决了。问题出在我的 docker 版本上。您需要一个最新的 docker 版本,然后克隆 docker-compose 存储库并执行 docker 构建,如上所示。要构建 ARM 版本,我必须使用 Qemu 制作 ARM 模拟器并在那里执行相同的步骤。