我有一台 amd64 linux 机器,用于构建 arm32v7 容器。当docker build
遇到第一个 RUN 命令,它会出错:
standard_init_linux.go:207: exec user process caused "no such file or directory"
这可以通过运行
docker run -it arm32v7/ubuntu:xenial
轻松复制,无需 docker 文件。在 amd64 linux 主机上。我在其他地方看到过这种提示,但大多数建议是您需要在 arm32v7 主机上构建一个 arm32v7 容器。这是相当不切实际的。
我在 Ubuntu 19.04 和 18.10 上成功添加了一些架构仿真:
sudo apt-get install -y qemu qemu-user-static qemu-user binfmt-support
添加这些包后,错误消失了,我可以创建我的 arm32v7 容器。
但是,这确实 不是 适用于 Ubuntu 18.04 或 16.04。
是否有适用于任何地方的通用解决方案?
最佳答案
似乎有一些安装后步骤在 Ubuntu 18.04 和 16.04 上失败了。
以下是解决 18.04 和 16.04 问题的几种解决方法。
方法一:
git clone https://github.com/computermouth/qemu-static-conf.git
sudo mkdir -p /lib/binfmt.d
sudo cp qemu-static-conf/*.conf /lib/binfmt.d
sudo systemctl restart systemd-binfmt.service
方法二:
sudo mkdir -p /lib/binfmt.d
sudo sh -c 'echo :qemu-arm:M::\\x7fELF\\x01\\x01\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x28\\x00:\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xfe\\xff\\xff\\xff:/usr/bin/qemu-arm-static:F > /lib/binfmt.d/qemu-arm-static.conf'
sudo sh -c 'echo :qemu-aarch64:M::\\x7fELF\\x02\\x01\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\xb7\\x00:\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xfe\\xff\\xff\\xff:/usr/bin/qemu-aarch64-static:F > /lib/binfmt.d/qemu-aarch64-static.conf'
sudo systemctl restart systemd-binfmt.service
关于docker - 在 amd64 linux 机器上为 arm32v7 容器运行 docker build 时出错 : standard_init_linux. go:207,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56063608/