go项目基于alpine 构建docker镜像,启动容器的时候一直报错 standard_init_linux.go:211: exec user process caused "no such file or directory"
问题找到了,一个是静态链接,一个是动态链接,动态链接的在微型镜像alpine上不支持。
总结
默认go使用静态链接,在docker的golang环境中默认是使用动态编译。
如果想使用docker编译+alpine部署,可以通过禁用cgo set CGO_ENABLED=0来解决。
如果要使用cgo可以通过go build --ldflags "-extldflags -static" 来让gcc使用静态编译。
引用来自:出处
世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;