我需要的:
x86_64 机器上用于 raspberry pi 零的测试容器,可与armv6l的 qemu 仿真一起使用。
到目前为止我得到了什么:
带有测试代码的 Dockerfile
FROM python:3.7.9
COPY hello.py ./
CMD [ "python3", "./hello.py" ]
使用以下命令构建图像:
docker buildx build --platform linux/arm/v6 -t test/hello --push .
在为 linux/arm/v6 上传和构建后,我尝试使用以下命令运行它:
docker run --platform=linux/arm/v6 --rm -t test/hello uname -mpi
Output: armv7l unknown unknown
我已经像他们在 github 页面上所说的那样设置了 qemu 和 binfmt: https ://github.com/docker/buildx#building-multi-platform-images
我不明白为什么输出是 armv7l,因为我做了所有事情来制作 armv6l 图像。不知道是否需要对 docker 或者 qemu 本身进行调整。我对 docker 的 buildx 系统以及如何在 qemu 下模拟容器非常陌生,所以如果有人能帮助我解决这个问题,我将非常感激。
编辑:
多亏了Peter,容器才知道被迫使用 armv6l。
docker run -e QEMU_CPU=arm1176 --platform=linux/arm/v6 --rm -t test/hello uname -mpi
Output: armv6l unknown unknown