问题:
在docker的alpine镜像上运行cgo项目会出现问题,提示panic: standard_init_linux.go:175: exec user process caused "no such file or directory"问题。
原因是当cgo开启时,默认是按照动态库的方式来链接so文件的,但alpine只支持静态链接,所以会出错。
解决方案:
通过设置CGO_ENABLED=0
来解决,此时cgo也不可用了。此法不行
调用go build --ldflags "-extldflags -static"
,来让gcc使用静态编译可以解决问题。
或者采用更大的Linux镜像,比如Ubuntu也可以解决。