使用 Docker 在 M1 Mac 上构建 Docker 映像时桌面上,用户可能会遇到错误消息“qemu-x86_64:无法打开'/lib64/ld-linux-x86-64.so.2':没有这样的文件或目录。”出现这个问题的原因是 Docker 尝试使用 ARM64 镜像作为基础镜像,但后来需要为 x86_64 架构编译二进制文件。
这个问题的根本原因是 M1 Mac 的架构与传统的 x86_64 架构不同。虽然它支持通过 qemu-x86_64 进行模拟,但 ARM64 基础映像中缺少所需文件“/lib64/ld-linux-x86-64.so.2”会导致报告错误。
解决方案:
与直觉相反,解决方案是在 Dockerfile 中的“FROM”行上显式指定 --platform=linux/amd64:
FROM --platform=linux/amd64 ubuntu:focal
这指示 Docker 使用 x86_64 基础映像,确保必要的文件在构建过程中出现。通过从 x86_64 映像开始,构建过程可以在不需要仿真的情况下继续进行,从而解决找不到文件的错误。
或者,用户可以考虑构建自己的基于 ARM64 的基础映像,并在构建期间的容器。但是,此选项可能更适合预构建 ARM64 二进制文件不可用的特定场景。
以上是为什么我的 Docker 构建在 M1 Mac 上失败并显示'qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'”?的详细内容。更多信息请关注PHP中文网其他相关文章!