Я относительно новичок в Docker - я пытаюсь создать систему для запуска приложения Symfony 4, состоящую из PHP-FPM, nginx и MySQL.
Все работает как надо, кроме одной вещи.Когда загружается контейнер PHP-FPM, я хочу запустить:
#!/bin/bash
composer install
bin/console doctrine:database:create --if-not-exists
bin/console doctrine:schema:update --force
bin/console doctrine:fixtures:load --no-interaction
Я создал скрипт с этими командами, а затем отредактировал свой DockerFile следующим образом:
COPY ./docker/php/startup.sh /usr/local/bin/startup.sh
RUN ["chmod", "+x", "/usr/local/bin/startup.sh"]
ENTRYPOINT ["/usr/local/bin/startup.sh"]
Проблема Iу меня есть то, что, когда я запускаю docker-compose build
, а затем docker-compose up
, я вижу, что скрипт запускается, но что-то в нем вызывает сбой контейнера и перезапускает сам себя - сценарий затем запускается снова, и цикл продолжается.Docker-compose.yml имеет restart: unless-stopped
, указанный в пути.
Я подумал, что одна из команд завершается с ненулевым кодом, поэтому попытался добавить exit 0
в конец скрипта,но безрезультатно.
Я что-то делаю глупо?Чтобы было ясно, я хочу, чтобы этот сценарий запускался автоматически при первой загрузке контейнера (это хорошо, если он запускает каждую загрузку столько, сколько он стоит, а не только в самый первый раз).