Debian下Golang打包兼容性实践
一、根因与取舍
二、推荐做法 dh-golang 标准化打包
#!/usr/bin/make -f
%:
dh $@ --with golang
三、常见兼容性场景与对策
CGO_ENABLED=0 go build -o myapp main.go
# Build
FROM golang:1.22 AS build
WORKDIR /app
COPY . .
RUN go mod download
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -tags netgo -o main main.go
# Runtime(Debian)
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y libvips
COPY --from=build /app/main /app/main
ENTRYPOINT ["/app/main"]
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o myapp-linux-arm64 main.go
四、质量控制与发布前检查