通常是代码结构或依赖引入环导致。检查模块边界、拆分公共依赖、避免包间相互引用;同时排查 GOROOT/GOPATH 与多版本 Go 干扰(可用 go env、whereis go 核对工具链)。
五 容器化打包示例
多阶段构建,产出静态二进制并减小镜像体积:
Dockerfile 示例:
FROM golang:1.22-alpine AS builder
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags “-s -w” -o /app/myapp
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD [“./myapp”]
说明:第一阶段使用官方 Go 镜像构建;第二阶段基于 alpine 仅拷贝二进制与证书,镜像小、部署便捷。