在本地计算机上,我已经构建了latest
映像,并docker build
在应有的位置运行另一个使用缓存。
然后,将映像作为上载到注册表latest
,然后在CI服务器上,提取latest
应用程序的映像,以将其用作构建缓存来构建新版本:
docker pull $CONTAINER_IMAGE:latest
docker build --cache-from $CONTAINER_IMAGE:latest \
--tag $CONTAINER_IMAGE:$CI_COMMIT_SHORT_SHA \
.
Run Code Online (Sandbox Code Playgroud)
从构建输出中,我们可以看到的COPY
中Gemfile
没有使用图片中的大小写latest
,而我还没有更新该文件:
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 …
Run Code Online (Sandbox Code Playgroud)