首页 > 后端开发 > Golang > 为什么我的 Docker 构建在 M1 Mac 上失败并显示'qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'”?

为什么我的 Docker 构建在 M1 Mac 上失败并显示'qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'”?

DDD
发布: 2024-12-17 11:15:26
原创
180 人浏览过

Why Does My Docker Build Fail with

“qemu-x86_64:无法打开 '/lib64/ld-linux-x86-64.so.2':没有这样的文件或目录”Docker 中的错误在 M1 Mac 上构建

使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板