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"'兩個選項都不創建靜態二進制文件嗎?(即,在它們將運行的環境中完全不需要庫的二進制文件?)
在 golang 中創建靜態二進制文件所需的標志
慕尼黑5688855
2022-06-01 10:41:21