Golang编译的二进制文件在alpine中无法运行

Posted saynaihe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang编译的二进制文件在alpine中无法运行相关的知识,希望对你有一定的参考价值。

背景:

小伙伴接入了百度超级链数字商品可信登记平台XuperAsset,程序是php 的 要exec 运行xasset-cli的一个可执行程序,but:

尝试了一下无法运行?但是我在ubuntu rockylinux上面尝试了都没有问题,alpine中就是不能运行!
求助了一下万能的搜索引擎:
Golang编译的二进制文件在alpine中无法运行的问题解决
go程序在alpine镜像里无法正常运行
stackoverflow
归根结底就是重新编译可执行文件,设置CGO_ENABLED=0

Golang编译的二进制文件在alpine中无法运行

重新编译可执行文件:

克隆代码仓库:

git clone https://github.com/xuperchain/xasset-sdk-go

下载依赖,并编译可执行文件

cd xasset-sdk-go&&go mod tidy


export CGO_ENABLED=0
cd tools/xasset-cli/
go build -o xasset-cli main.go

alpine环境验证

将可执行文件copy到alpine环境中运行 ok

只是记录一下…

以上是关于Golang编译的二进制文件在alpine中无法运行的主要内容,如果未能解决你的问题,请参考以下文章

Golang编译的二进制文件在alpine中无法运行

golang编写的项目,使用alpine制作镜像遇到的一个问题解决

为啥在 Debian 9 中编译的 golang 二进制文件无法在 Centos 7 中启动?

Go 编译的二进制文件不会在 Ubuntu 主机上的 alpine docker 容器中运行

golang 在mac 下go install成二进制文件,上传到centos 无法执行

使用scratch构建最小化Go程序的docker image