首页 >后端开发 >Golang >为什么我的自定义 Go 二进制文件无法在 Alpine Docker 映像中运行?

为什么我的自定义 Go 二进制文件无法在 Alpine Docker 映像中运行?

Susan Sarandon
Susan Sarandon原创
2024-12-05 22:43:09223浏览

Why Can't My Custom Go Binary Run in an Alpine Docker Image?

在 Alpine Linux Docker 上的路径中找不到已安装的 Go 二进制文件

尝试在 Alpine Docker 上运行自定义 Go 二进制文件时会出现此问题图像,在路径中找不到二进制文件。虽然 Alpine 的默认 Go 二进制文件按预期工作,但自定义二进制文件遇到“未找到”错误。

该问题源于 Alpine Linux 中缺少兼容性链接。该二进制文件依赖于特定的动态库(例如 /lib64/ld-linux-x86-64.so.2),但 Alpine 没有指向该库的直接符号链接。

要解决此问题,在 Dockerfile 中执行以下命令:

RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

此命令在兼容的动态库之间创建必要的符号链接,允许自定义 Go 二进制文件找到所需的依赖并执行成功。

以上是为什么我的自定义 Go 二进制文件无法在 Alpine Docker 映像中运行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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