scratch
我正在使用作为基础构建 Docker 映像。
以下构建命令:
RUN go build -o /go/bin/myapp
创建了一个在执行时一直失败的二进制文件:
standard_init_linux.go:211: exec user process caused "no such file or directory"
通过反复试验,我发现我需要按如下方式构建:
RUN CGO_ENABLED=0 go build -o /go/bin/myapp -a -ldflags '-extldflags "-static"' .
为什么两者都是必要CGO_ENABLED=0
的? -ldflags '-extldflags "-static"'
两个选项都不创建静态二进制文件吗?(即,在它们将运行的环境中完全不需要库的二进制文件?)
忽然笑
相关分类