
docker打包go服务
单体服务
只有go
Dockerfile 文件
shell
# 构建阶段
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
# 运行阶段
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]打包测试
shell
# 构建镜像
docker build -t go-web-demo .
# 运行容器(映射 8080 端口)
docker run -d -p 8080:8080 --name my-go-app go-web-demo
# 测试
curl http://localhost:8080
# 输出: {"hello":"world"}
