Последний шаг процесса — разогрев кеша, чтобы изображение можно было использовать «как есть». Хотя команда работает нормально, конечным результатом является наличие двух каталогов кэша для среды: один с правильным именем, а другой с тильдой (~).
root@c238674823ae:/app/var/cache# ls -la
total 0
drwxr-xr-x 1 root root 16 Jan 2 11:46 .
drwxr-xr-x 1 root root 72 Jan 2 11:46 ..
drwxr-xr-x 1 root root 146 Jan 2 11:46 prod
drwxr-xr-x 1 root root 146 Jan 2 11:46 pro~
В каталоге кэша отсутствуют некоторые каталоги с «правильным» именем, что приводит к сбою приложения.
Это шаги Dockerfile, где кеш разогревается:
ENV COMPOSER_MEMORY_LIMIT=-1
RUN set -eux; \
mkdir -p var/cache var/log; \
composer dump-autoload -o --apcu --no-dev; \
composer dump-env prod; \
chmod +x bin/console; sync;
RUN set eux; \
rm -rf var/cache/* && \
bin/console cache:clear && \
bin/console assets:install public && \
bin/console importmap:install && \
bin/console sass:build -v && \
bin/console asset-map:compile;
Если я вручную выполняю rm -rf var/cache/prod && mv var/cache/pro~ var/cache/prod, приложение работает нормально... но я Боюсь полагаться на это, поскольку это не кажется нормальным или ожидаемым поведением.
Если после запуска приложения я запускаю bin/consolecache:clear, теперь приложение работает, но это требует от нас запуска команды после развертывания нового образа, что приводит к простою на пару секунд при каждом развертывании, что нежелательно.
Почему команда кэша: очистить не завершается правильно? Почему, если он не завершился правильно, вышел без ошибки?
А теперь глупость. Если я сделаю это (дважды запустив кэш: очистить):
RUN set eux; \
rm -rf var/cache/* && \
bin/console cache:clear && \
bin/console cache:clear && \
bin/console assets:install public && \
bin/console importmap:install && \
bin/console sass:build -v && \
bin/console asset-map:compile;
теперь это работает, и есть один каталог кэша
docker run -it web-api/env-prod:local ls -la var/cache
total 0
drwxr-xr-x 1 root root 8 Jan 2 12:11 .
drwxr-xr-x 1 root root 72 Jan 2 12:11 ..
drwxr-xr-x 1 root root 170 Jan 2 12:11 prod
Подробнее здесь: https://stackoverflow.com/questions/793 ... -correctly
Мобильная версия