Go跨平台编译与部署

约 2 分钟读完

Go跨平台编译与部署

交叉编译

Go 原生支持交叉编译,无需额外工具:

# 编译 Linux 64位
GOOS=linux GOARCH=amd64 go build -o mytool-linux

# 编译 Windows 64位
GOOS=windows GOARCH=amd64 go build -o mytool.exe

# 编译 macOS
GOOS=darwin GOARCH=amd64 go build -o mytool-mac

Docker 多阶段构建

FROM golang:1.22 AS builder
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 go build -o mytool

FROM alpine:latest
COPY --from=builder /app/mytool /usr/local/bin/
ENTRYPOINT ["mytool"]

版本信息注入

go build -ldflags "-X main.version=1.0.0 -X main.buildTime=$(date -u +%Y%m%d)"

发布最佳实践

  • 使用 GoReleaser 自动化构建和发布
  • 生成 SHA256 校验和
  • 提供多种格式(tar.gz、zip、deb、rpm)
  • 编写 CHANGELOG

总结

Go 的跨平台编译能力是其一大优势。配合 Docker 和 GoReleaser,可以轻松实现自动化的构建和发布流程。

← Impacket协议利用库 Go语言安全编程入门 →