首页 >后端开发 >Golang >ARM64 Docker 上的 QEMU-x86_64:如何修复'没有这样的文件或目录”错误?

ARM64 Docker 上的 QEMU-x86_64:如何修复'没有这样的文件或目录”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-19 09:48:10380浏览

QEMU-x86_64 on ARM64 Docker: How to Fix

没有此类文件或目录错误:在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn