为您的 Go 应用程序提供精简的 Docker 镜像
如何使用多阶段镜像为您的 Go 应用程序构建一个精简的 Docker 容器。
我使用 Go 1.13 和社区模块代理来构建二进制文件,并使用 Alpine 作为基础镜像。它添加了用户和组,而不是以 root 身份运行。
Dockerfile
请确保用主文件替换“cmd/server/server.go”。
FROM golang:1.13 as builder
WORKDIR /app
COPY . /app
RUN CGO_ENABLED=0 GOOS=linux GOPROXY=https://proxy.golang.org go build -o app cmd/server/server.go
FROM alpine:latest
# mailcap adds mime detection and ca-certificates help with TLS (basic stuff)
RUN apk --no-cache add ca-certificates mailcap && addgroup -S app && adduser -S app -G app
USER app
WORKDIR /app
COPY --from=builder /app/app .
ENTRYPOINT ["./app"]
希望以上内容对您有所帮助。我写这篇博客主要是为了记录一下。
文章来源:https://dev.to/andrioid/slim-docker-images-for-your-go-application-11oo