Docker 与 Golang 的结合,可谓是容器化的最佳实践了: 使用 Docker
隔离环境,使用 Golang
则可以快速开发和构建无运行时依赖应用程序。
要构建最小的 Docker 镜像, alpine
镜像是最佳的选择了,因为基础镜像只有 5.53M
左右。
而为了构建能在 alpine
里能运行的 Golang
程序,则首先需要在 alpine
里编译。当然了,这不是必须的,但我们推荐你这么做。
逻辑思路理清楚了,我们就可以开始编写 Dockerfile
文件了
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"]
我们把内容分为2段,第一段编译,第二段则真正的运行。
这样,得到的整个镜像,差不多就是 9M
左右
目前尚无回复