如何构建不链接到 musl libc 的 go 可执行文件

And*_*sen 8 go docker alpine-linux

所以:

官方的 Go 构建容器基于 Alpine。

Alpine 使用musl作为 libc,而不是 glibc。

我需要在容器中构建一个可以在使用 glibc 的 Ubuntu 上运行的 Go 可执行文件。

我该怎么办

  1. 让官方 GoLang 构建容器使用 glibc 或
  2. 在基于 Ubuntu 的容器上构建我的 GoLang 项目

我无法使用禁用 CGO解决方案,因为我的 Go 代码是 FUSE 驱动程序,需要 CGO

dav*_*iod 3

golang:latest图像基于 debian bullseye。除了使用此映像来构建二进制文件之外,您不需要任何其他东西,以便它可以在 ubuntu 上按原样运行。

只需使用此行而不是您当前正在使用的内容来启动您的 dockerfile。

FROM golang:latest
Run Code Online (Sandbox Code Playgroud)