因为go语言编译好之后为可执行文件,不需要依赖go语言环境即可运行,所以可以在带go语言得docker镜像中编译,编译完成之后将二进制文件拷贝到一个不带go环境的较小的镜像即可,这里采用alpine镜像作为运行的镜像

FROM golang:alpine AS development
WORKDIR $GOPATH/src
COPY . .
RUN go build -o app

FROM alpine:latest AS production
WORKDIR /root/
COPY --from=development /go/src/app .
EXPOSE 8080
ENTRYPOINT ["./app"]

这样制作完成的镜像只有8.5M的大小,其中alpine基础包5.53M

文档更新时间: 2019-10-15 18:14   作者:月影鹏鹏