Как дождаться запуска БД и выполнить команды?
Есть проект из 2х контейнеров. На одном стоит БД mysql, на другом развернуто приложение. Как можно составить Dockerfile или docker-compose.yml, чтобы при сборке образа приложения или запуске контейнера дожидался полный старт БД, и только потом запускался сервис полностью?
Ответы (1 шт):
Автор решения: Maksim Alekseev
→ Ссылка
При запуске сервиса можно запустить bash-script, для этого нужно создать файл с расширением sh например entrypoint.sh и в нем запускать команду sleep, после нее можно указать остальные команды для запуска вашего сервиса.
#!/bin/bash
sleep 15
<другие команды>
Далее, в docker-compose.yml в вашем сервисе нужно добавить:
command: ['/path_to_bash_script/entrypoint.sh']
для запуска этого скрипта, при сборке контейнера.