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
,如果这有助于调查。
请指教。