我正在为我的go项目构建一个多阶段Dockerfile。
来自golang:最新作为建设者
COPY ./go.mod /app/go.modCOPY ./go.sum /app/go.sum
ENV GO111MODULE = …
golang图像的“最新”版本是基于debian的,它使用libc。阿尔卑斯山使用musl。如果你不编译 CGO_ENABLED=0 ,网络库将链接到libc,没有这样的文件或目录错误指向缺少的库。您可以查看这些共享库链接 ldd /app/main 。我能想到的一些解决方案:
CGO_ENABLED=0
ldd /app/main
FROM golang:alpine
FROM debian