docker多阶段构建镜像

通常编译时依赖一些构建工具,但运行时并不需要,为了缩小可运行镜像大小,普通做法是使用多个dockerfile,用shell脚本把多个docker build步骤串联起来,这样做没有任何问题;但还有其他方法,可以只使用一个Dockerfile把多个阶段都写在里面,下一个步骤引用之前步骤生成的文件,这样只需要一个docker build命令就可以了。

#第一阶段编译代码
FROM golang:1.7.3 as builder
WORKDIR /go/src/
RUN go get -d -v golang.org/x/net/html
COPY app.go    .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

#第二阶段构建可运行镜像
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
#--from=0结果类似,使用别名更容易理解
COPY --from=builder /go/src/app .
CMD ["./app"]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值