Если я запускаю composer install
со своего хоста, я попадаю в свой локальный кеш композитора:
- Installing deft/iso3166-utility (1.0.0)
Loading from cache
Тем не менее, при создании контейнера, имеющего в своем Dockerfile:
RUN composer install -n -o --no-dev
Я загружаю все, например:
- Installing deft/iso3166-utility (1.0.0)
Downloading: 100%
Это ожидаемо, но я предпочитаю избегать этого. Так как даже на ребилде тоже все заново скачивал.
Я хотел бы иметь универсальный кеш для композитора, который я также мог бы использовать для других проектов докеров.
Я изучил это и нашел подход к определить том в Dockerfile а>:
ENV COMPOSER_HOME=/var/composer
VOLUME /var/composer
Я добавил это в свой Dockerfile
и рассчитывал загрузить файлы только один раз, а затем попасть в кеш.
Тем не менее, когда я изменяю свой composer
, например. удалите флаг -o
и перезапустите docker build .
, я ожидал попадания в кеш при сборке, но все же снова загружаю поставщиков.
Как должны работать тома, чтобы иметь кеш данных внутри контейнера докеров?