首页 > 后端开发 > Golang > 尽管 Docker 的 Go 二进制文件可以工作,但为什么我的 Go 二进制文件无法在 Alpine Linux 上运行?

尽管 Docker 的 Go 二进制文件可以工作,但为什么我的 Go 二进制文件无法在 Alpine Linux 上运行?

Linda Hamilton
发布: 2024-12-13 18:58:10
原创
426 人浏览过

Why Doesn't My Go Binary Run on Alpine Linux Despite Docker's Go Binary Working?

在 Alpine Linux 上找到 Docker Go 二进制文件,但在路径中未找到其他 Go 二进制文件

尝试在 Linux 上运行 Go 二进制文件时会出现此问题除 Docker Go 二进制文件之外的 Alpine Docker 镜像。系统无法识别已安装的二进制文件。

问题来源:

问题在于已安装的 Go 二进制文件与底层基于 musl 的兼容性缺乏阿尔卑斯Linux。 Musl 是一个轻量级 C 库,与其他 Linux 发行版中常用的 glibc 不同。

解决方案:

要解决此问题,请在 /lib/ 之间创建符号链接libc.musl-x86_64.so.1 和/lib64/ld-linux-x86-64.so.2:

RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86_64.so.2
登录后复制

此符号链接确保已安装的 Go 二进制文件和 musl 库之间的兼容性,使二进制文件能够按预期被识别和执行。

以上是尽管 Docker 的 Go 二进制文件可以工作,但为什么我的 Go 二进制文件无法在 Alpine Linux 上运行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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