发布于2026-07-01 阅读(0)
扫一扫,手机访问
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o myapp
简单粗暴,但实用——运行时依赖几乎清零,拷贝到哪都能跑。
go build -ldflags="-s -w" -o myapp
- **UPX压缩**:安装`upx`(`sudo yum install upx`)后,用`--best`最高压缩比,体积能缩一半甚至更多。命令:
upx --best myapp
- **Strip工具**:`strip --strip-all myapp`(需安装`binutils`),进一步剔除无用符号。
注意:压缩或strip后的文件没法直接调试,开发环境建议保留一份未压缩版本。
go build -p 4 -o myapp
- **缓存开启**:`GOCACHE`默认是开的,可以用`go env GOCACHE`看看缓存路径。想改位置?`export GOCACHE=/tmp/go-cache`。
- **依赖管理**:Go Modules + `vendor`目录配合使用。`go mod tidy`整理依赖,`go build -modvendor`把依赖提前拷贝到本地,避免每次构建都去远程拉。
go mod tidy && go build -modvendor -o myapp
- **GC参数微调**:降低`GOGC`(比如`export GOGC=20`)能减少编译过程中的GC停顿;`export GOMAXPROCS=$(nproc)`让编译并行度随CPU数自动调整。
GOOS=windows GOARCH=amd64 go build -o myapp.exe
GOOS=linux GOARCH=arm go build -o myapp-arm
开发效率提升不是一点半点——测试、验证、发布全在一台机器上搞定。
# 构建阶段
FROM golang:1.23-alpine AS build
WORKDIR /src
RUN apk add --no-cache git
COPY . .
RUN go mod download && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /bin/myapp
# 运行阶段
FROM alpine:latest
WORKDIR /app
COPY --from=build /bin/myapp /app/myapp
CMD ["/app/myapp"]
构建和运行同样简单:
docker build -t myapp .
docker run -it --rm myapp
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8