Go 分层构建镜像减少打包体积

5 min read
FROM golang:alpine AS builder

ENV CGO_ENABLED 0
#ENV GOPROXY https://goproxy.cn,direct

RUN apk update --no-cache && apk add --no-cache tzdata

WORKDIR /build
COPY . .
#ADD go.mod .
#ADD go.sum .
RUN go mod download

RUN go build -ldflags="-s -w" -o /app/main ./main.go


FROM alpine

RUN apk update --no-cache && apk add --no-cache ca-certificates
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
ENV TZ Asia/Shanghai
COPY config.yml /app/config.yml
WORKDIR /app
COPY --from=builder /app/main /app/main

CMD ["./main"]