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

Выполнение команды при запуске контейнера 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() крон задачи защищающий задачу очереди от наложения сохраняется в кеш на сутки и при перезагрузке/пересоздании контейнера не запускает крон-задач т.к. читает в кеше что она уже запущена. Может есть другие способы решения проблемы?
  • Вопрос задан
  • 987 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Skillbox
    PHP-фреймворк Laravel
    2 месяца
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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

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

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

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