社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker Build在使用--cache from复制gemfile时不使用缓存

ZedTuX • 5 年前 • 1922 次点击  

在我的本地机器上,我已经建立了 latest 映像,并运行另一个 docker build 应该在任何地方使用缓存。

然后我将图像作为 最新的 ,然后在我的ci服务器上, 最新的 要将我的应用程序用作生成缓存以生成新版本的图像:

docker pull $CONTAINER_IMAGE:latest

docker build --cache-from $CONTAINER_IMAGE:latest \
             --tag $CONTAINER_IMAGE:$CI_COMMIT_SHORT_SHA \
             .

从构建输出中我们可以看到 COPY Gemfile 不使用来自 最新的 图像,而我还没有更新该文件:

Step 15/22 : RUN gem install bundler -v 1.17.3 &&     ln -s /usr/local/lib/ruby/gems/2.2.0/gems/bundler-1.16.0 /usr/local/lib/ruby/gems/2.2.0/gems/bundler-1.16.1
 ---> Using cache
 ---> 47a9ad7747c6
Step 16/22 : ENV BUNDLE_GEMFILE=$APP_HOME/Gemfile     BUNDLE_JOBS=8
 ---> Using cache
 ---> 1124ad337b98
Step 17/22 : WORKDIR $APP_HOME
 ---> Using cache
 ---> 9cd742111641
Step 18/22 : COPY Gemfile $APP_HOME/
 ---> f7ff0ee82ba2
Step 19/22 : COPY Gemfile.lock $APP_HOME/
 ---> c963b4c4617f
Step 20/22 : RUN bundle install
 ---> Running in 3d2cdf999972

旁侧节点 :它在我的本地机器上运行良好。

查看Docker文档 Leverage build cache 似乎无法解释这里的行为,因为dockerfile和gemfile都没有改变,所以应该使用缓存。

是什么使Docker不使用GemFile的缓存?

更新

我试图复制设置正确权限的文件,使用 COPY --chown=user:group source dest 但它仍然不使用缓存。

开放的Docker论坛主题: https://forums.docker.com/t/docker-build-not-using-cache-when-copying-gemfile-while-using-cache-from/69186

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44057
 
1922 次点击  
文章 [ 2 ]  |  最新文章 5 年前