我需要在CI服务器构建映像中使用checkout项目重用docker cache.
结帐时,Docker ADD不使用缓存相同的文件.
我在git分支A执行docker build -t somename .
它正常使用docker缓存,但如果我通过分支Bgit checkout B
,什么都不做,去分支A通过git checkout A
并再次运行docker build -t somename .
docker缓存仅在第一个ADD之前使用.
这里的例子:
Dockerfile
# DOCKER-VERSION 0.10.0
FROM myregistry:5000/ruby:2.1.2-1
MAINTAINER ME
# Gem sources
RUN gem source -r https://rubygems.org/
RUN gem source -a http://gems.mydomain
# Never install a ruby gem docs
RUN echo "gem: --no-rdoc --no-ri" >> ~/.gemrc
# gems install
RUN mkdir /foo
WORKDIR /foo
RUN gem install bundler
ADD Gemfile …
Run Code Online (Sandbox Code Playgroud)