我正在编写一个Dockerfile,我将几个RUN指令串联在一起以进行适当的缓存,但是我意识到其中一条带有--no-cache的RUN指令。您能否告知缓存如何在这里工作。
RUN go mod download \
&& apk update --no-cache \
&& apk add git \
&& CGO_ENABLED=0 go build -o golang-sdk .
答案 0 :(得分:1)
remove from season
没有意义。罢工并将git install修改为
apk update --no-cache
甚至更好:进行两阶段构建:
RUN apk add git --no-cache \
&& go mod download \
&& CGO_ENABLED=0 go build -o golang-sdk .
这样,您可以在构建时完成所有喜欢的工作,而无需考虑图像大小,并且可以将FROM golang:latest AS build
WORKDIR /go/src/github.com/you/project/
RUN [yourstuff]
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 /usr/local/bin
COPY --from=build /go/src/github.com/you/project/app .
CMD ["/usr/local/bin/app"]
的图像最小化。