没有此类文件或目录错误:在 ARM64 Docker 构建上对 QEMU-x86_64 进行故障排除
使用 QEMU-x86_64 在 M1 MacOS 上构建 Docker 映像时,用户可能会遇到错误“qemu-x86_64:无法打开'/lib64/ld-linux-x86-64.so.2':没有这样的文件或目录。”出现此错误的原因是 ARM64 M1 架构没有 Dockerfile 所需的 x86_64 共享对象库。
要解决此问题,解决方案在于更改 Dockerfile 的 FROM 指令中指定的平台。不要使用默认的 ARM64 平台,而是显式指定 linux/amd64 平台,如下所示:
FROM --platform=linux/amd64 ubuntu:20.04
此更改强制 Docker 使用 x86_64 基础映像,其中包括必要的共享对象库。因此,构建过程将尝试安装并执行为 x86_64 显式编译的代码。
或者,如果可能,请考虑在构建期间使用 ARM64 基础映像并在容器内编译 x86_64 软件。虽然由于模拟可能会较慢,但在基于 M1 的 Mac 上运行容器时,这种方法可以提高性能。
以上是ARM64 Docker 上的 QEMU-x86_64:如何修复'没有这样的文件或目录”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!