докер контейнера, первый веб сервер, а второй сервер БД на PostgreSQL11. На веб сервере установлен nginx, php 7.3 и php-fpm. Чтобы веб сервер нормально заработал, необходимо запустить его командой docker run -it -p 80:80 webserver-with-app /bin/bash в режиме интерактивной строки, а затем последовательно ввести команды nginx & и php-fpm & затем выйти из интерактивного режима не останавливая контейнер. Затем запускается сервер БД docker run -p 5432:5432 --name postgres: -e POSTGRES_PASSWORD='' -d postgres:11
Если запустить их вручную в предварительно созданной для них сети, то они друг друга видят и нормально взаимодействуют. Тут вроде бы все нормально.
А теперь вопрос: при попытке запустить все это в автоматизированном режиме с помощью docker-compose up -d в веб сервере не выполняется nginx & и php-fpm & соответственно не запускается веб приложение. Есть ли возможность это как то исправить?
проблема в том, что пока поднимается БД, другие конейнеры не видят, что контейнер поднялся, соответственно, нужно сделать так, чтобы другие контейнеры начали опрос тогда. когда докер контрейнер с БД взлетит. Должно решаться с помошью зависимотей контейнеров друг от друга, плюс нужно мониторить, когда поднимется контейнер, например, скриптами https://pastebin.com/K1PVQdFn
вот тебе ответ)
Обсуждают сегодня