我希望能够从我的Mac构建ARM的Docker镜像。我知道我可以使用QEMU在我的Mac上运行ARM容器,但我无法弄清楚如何为ARM构建。
答案 0 :(得分:2)
现在这有点令人费解。我相信在不久的将来,码头工作会更容易。
基本上你需要根据一个已经有qemu-arm-static二进制文件的容器构建一个包含。
通过查看使用travis直接构建图像的Raspberry Pi base image w/qemu-arm-static,您可以看到它是如何完成的。
我所做的基本上是在我的覆盆子pi构建我的基础docker镜像,添加了这个二进制文件并将其推送到docker-hub。
一旦我将该图像作为我的基础,我就可以在我的OSX机器上构建和运行从它派生的容器,包括构建新的派生容器,然后在我的覆盆子pi上运行它未经修改。
在我的覆盆子pi上,我使用这个Dockerfile构建了一个图像。我开始使用hypriot的基础高山图像。您应该能够使用任何您想要的基本图像。
FROM hypriot/rpi-alpine-scratch
RUN apk update && \
apk upgrade && \
apk add bash && \
rm -rf /var/cache/apk/*
COPY qemu-arm-static /usr/bin/qemu-arm-static
CMD ["/bin/bash"]
有一次我把它推到Dockerhub我知道有一个我可以在我的英特尔机器上构建的容器,并在我的覆盆子pi上运行。
我通过启动debian i386 docker容器,安装qemu-user-static
并复制二进制文件来获得qemu-arm-static二进制文件。