Задать вопрос

Выполнение команды при запуске контейнера Docker?

Что то совсем запустался. Нужно почистить кеш laravel пр запуске контейнера. Но проблема в том, что скрипт чистки кеша завершается и вместе с ним завершает работу контейнер. Пытался лепить костыли типа:

CMD ["/usr/bin/php", "/var/www/laravel/artisan", "cache:clear"]
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]


ENTRYPOINT [ "/bin/bash", "-c", "'php /var/www/laravel/artisan cache:clear'", "&&", "/usr/sbin/apache2ctl", "-D", "FOREGROUND"]


CMD ["/var/www/laravel/artisan", "cache:clear", "&&", "/bin/bash"]


И еще миллион комбинаций, но ничего не помогает. В лучшем случае он удаляет слой с этой командой:

Step 11/12 : CMD /usr/bin/php /var/www/laravel/artisan cache:clear
---> Running in 4c1202595b35
---> 5dff8f60522c
Removing intermediate container 4c1202595b35

Удаляет то почему? что я делаю не так? Помогите плиз разобраться

PS
Изначально проблема в том, что метод withoutOverlapping() крон задачи защищающий задачу очереди от наложения сохраняется в кеш на сутки и при перезагрузке/пересоздании контейнера не запускает крон-задач т.к. читает в кеше что она уже запущена. Может есть другие способы решения проблемы?
  • Вопрос задан
  • 969 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@rustler2000
погромист сикраш
Используй --rm и запускай без кэша. Контейнер должен отправляться в помойку после использования.

Ну или головняк головняк entry point.sh опять головняк и в конце таки --rm все равно.
Ответ написан
Комментировать
Catsys2
@Catsys2 Автор вопроса
CMD /bin/bash -c '/usr/bin/php /var/www/laravel/artisan cache:clear' && /usr/sbin/apache2ctl -D FOREGROUND

Такой костыль помог. Удаление слоя видимо нормально. т.к. никаких изменений не произошло (только файлы проекта изменились, которые не являются частью образа) докер грохнул слой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы