交叉编译 Linux amd64(在 macOS/Windows 或 Ubuntu 上均可):GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -a -installsuffix cgo -ldflags “-s -w” -o app main.go
说明:禁用 CGO 便于生成静态二进制,提升可移植性与一致性。
使用 Docker 多阶段构建(CI/CD 推荐):
FROM golang:1.22 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -a -installsuffix cgo -ldflags “-s -w” -o app .
FROM scratch
COPY --from=builder /app/app /
ENTRYPOINT [“/app”]
说明:构建阶段与生产镜像分离,最终镜像极小且构建环境一致。