Ubuntu打包Golang代码的方法
一 准备环境
sudo apt-get update && sudo apt-get install golanggo version~/.bashrc:export PATH=$PATH:/usr/local/go/binsource ~/.bashrc二 本地构建与多平台交叉编译
go build -o myapp main.goCGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myappCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o myapp.exeCGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o myapp三 体积优化与产物打包
sudo apt-get install upxupx --best myapp(可显著减小体积)tar czvf myapp.tar.gz myapp config/tar xzvf myapp.tar.gzchmod +x ./myapp./myapp四 自动化与多平台批量构建
GO := go、BUILD_ENV := CGO_ENABLED=0 GOOS=linux GOARCH=amd64$(GO) build -o bin/myapp $(BUILD_ENV) .rm -f bin/myappmake 或 make build / make cleango get github.com/mitchellh/goxgox -output="dist/{{.OS}}_{{.Arch}}/{{.Dir}}" .五 Docker 镜像打包与最小化交付
FROM golang:1.21 AS builder
WORKDIR /app
COPY . .
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o myapp .
FROM scratch
COPY --from=builder /app/myapp /myapp
ENTRYPOINT ["/myapp"]
docker build -t myapp:latest .docker run --rm myapp:latest