Dockerfile 构建的镜像太大,我们可以使用多剪短构建的形式减小镜像的大小。
示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
FROM golang:1.13.13-alpine as mybuildstage WORKDIR /go/src COPY . . EXPOSE 80 RUN go env -w GOPROXY=https://goproxy.cn,direct RUN go build -o go-server main.go RUN chmod a+x go-server # alpine 这个镜像小 FROM alpine WORKDIR /app ENV TZ Asia/Shanghai COPY --from=mybuildstage /go/src/go-server /app/go-server CMD ["/app/go-server"] |
这里有几个坑,首先我们运行镜像使用 alpine,则 Golang 编译镜像必须使用 golang:1.13.13-alpine 中带 -alpine 后缀的镜像。否则就会报错
参考文献:
两个奇技淫巧,将 Docker 镜像体积减小 99% https://zhuanlan.zhihu.com/p/115845957
Docker 的多阶段构建
© 著作权归作者所有
文章评论(0)