Dockerfile不在RUN作曲者安装命令中使用caching

我以为我已经了解了Docker,但是今天我发现了一些关于使用dockercaching的问题。

这是我的dockerfile

FROM quay.io/my_company/phpjenkins WORKDIR /usr/src/my_project ADD composer.json composer.json ADD composer.lock composer.lock RUN composer install -o ADD . . RUN mkdir -p temp/unittest/cache log RUN cp app/config/config.unittest.template.neon app/config/config.unittest.neon CMD ["tail", "-f", "/dev/null"] 

我希望docker使用caching,直到ADD . . ADD . .

但是,每一个构build,看起来像docker试图每次做composer install

这是一些输出

 + docker-compose -f docker-compose.yml run app vendor/bin/phpunit -d memory_limit=2048M Creating network "xxx_default" with the default driver Creating xxx_rabbitmq_1 Creating xxx_mysql_1 Building app Step 1/9 : FROM quay.io/my_company/phpjenkins ---> f10ea65fb7df Step 2/9 : WORKDIR /usr/src/my_project ---> Using cache ---> 07ad76770cd2 Step 3/9 : ADD composer.json composer.json ---> Using cache ---> 0d22314b81af Step 4/9 : ADD composer.lock composer.lock ---> Using cache ---> 3d41825efcb3 Step 5/9 : RUN composer install -o ---> Running in 38de5f08eb46 Warning: This development build of composer is over 60 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version. Do not run Composer as root/super user! See https://getcomposer.org/root for details .... ... ---> aa05dc9ddc5f Removing intermediate container 581aa7e4b00f Step 6/9 : ADD . . ---> 8796a9235b9a Removing intermediate container b7354231fbd7 

我用尽了,可能是dockerfile没有使用caching作为RUN composer install命令

我正在使用Docker version 17.05.0-ce, build 89658be在Debian上Docker version 17.05.0-ce, build 89658be ,如果这有助于调查。

请指教。