Docker 代码更改会中断apk添加缓存
是否可以拆分Docker 代码更改会中断apk添加缓存,docker,Docker,是否可以拆分apk add和go build命令,以便代码更改不会重新安装apk依赖项 FROM golang:1.8-alpine AS go-build-env RUN apk update && apk upgrade && apk add --no-cache bash git RUN go build /bin/webui main.go 编辑:更新 FROM golang:1.8-alpine AS go-build-env RUN apk upda
apk add
和go build
命令,以便代码更改不会重新安装apk依赖项
FROM golang:1.8-alpine AS go-build-env
RUN apk update && apk upgrade && apk add --no-cache bash git
RUN go build /bin/webui main.go
编辑:更新
FROM golang:1.8-alpine AS go-build-env
RUN apk update && apk upgrade && apk add --no-cache bash git openssh curl g++ \
make perl; go-wrapper download
RUN mkdir -p /go/src/github.com/markwallsgrove/saml_federation_proxy \
/go/src/github.com/markwallsgrove/saml_federation_proxy/models \
/go/src/github.com/markwallsgrove/saml_federation_proxy/webui
COPY webui/main.go /go/src/github.com/markwallsgrove/saml_federation_proxy/webui
COPY models /go/src/github.com/markwallsgrove/saml_federation_proxy/models
WORKDIR /go/src/github.com/markwallsgrove/saml_federation_proxy/webui
编写的dockerfile不包含任何
ADD
说明,因此main.go
不存在
在使用alpine和apk时,您也没有处理“apt get
”缓存,而是要超越这些错误
为了保持缓存docker层而忽略代码更改,请将它们放在任何ADD
/COPY
指令之上--这些指令会使它们下面的所有层无效
在您的示例dockerfile中,它看起来像这样:
FROM golang:1.8-alpine AS go-build-env
RUN apk update && apk upgrade && apk add --no-cache bash git
ADD main.go .
RUN go build /bin/webui main.go
谢谢你,安东尼。我已使用Dockerfile中的完整和更新区块更新了问题。我还是有同样的问题。第一次运行命令始终执行,即使在连续运行时也不会缓存。@smokedice dockerfile已满足问题中的行为
apk
不是apt get
。