我有Go项目。要缓存模块,我使用COPY go.mod go.sum ./
。但是我的缓存仅在第一步之前就在Jenkins上失效-在COPY项目上:
Step 5/16 : WORKDIR /go/src/github.com/project
---> Using cache
---> 5d2fce4711c2
Step 6/16 : RUN apt-get update && apt-get -y install libavutil-dev
---> Using cache
---> ab9414893097
Step 7/16 : COPY . /go/src/github.com/project
---> c7dc5b6a3c88 #
Step 8/16 : COPY go.mod go.sum ./
---> fbd7f900ed7a
同时在本地它就像一种魅力。
答案 0 :(得分:1)
您要复制到.
的{{1}}的内容已更改,这就是缓存无效的原因。
/go/src/github.com/project
是构建上下文-从中进行docker构建的目录。如果此文件夹中发生任何更改,它将使缓存无效。
如果您的源不变,并且您想保留缓存,则将此副本移到上一个副本之上。