gpt4 book ai didi

go - 我们可以在Dockerfile中用--no-cache连接多个RUN指令吗

转载 作者:行者123 更新时间:2023-12-01 22:12:02 27 4
gpt4 key购买 nike

我正在写一个Dockerfile,我将几个RUN指令串联在一起以进行适当的缓存,但我意识到其中一条--no-cache的RUN指令。您能否建议缓存在这里如何工作。

RUN go mod download \
&& apk update --no-cache \
&& apk add git \
&& CGO_ENABLED=0 go build -o golang-sdk .

最佳答案

apk update --no-cache没有意义。罢工并将git install修改为

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"]
这样,您可以在构建时做所有喜欢的事情,而无需考虑图像大小,并且可以将 app的图像最小化。

关于go - 我们可以在Dockerfile中用--no-cache连接多个RUN指令吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63045404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com