以下是在CentOS上打包Golang应用的实用技巧:
go mod init
)并添加依赖(go get
),确保版本可控。GOOS
和GOARCH
环境变量生成不同平台的可执行文件,如GOOS=linux GOARCH=amd64 go build -o myapp
。-ldflags="-s -w"
参数去除符号表和调试信息,减小文件体积;使用CGO_ENABLED=0
避免动态链接库依赖。UPX
压缩二进制文件(upx --best myapp
)。go clean -cache
清理构建缓存,提升编译速度。FROM golang:1.20-alpine AS build
WORKDIR /app
COPY . .
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o myapp
FROM alpine:latest
COPY --from=build /app/myapp /
CMD ["./myapp"]
```。