Повторная попытка подключения DJANGO к базе данных или более продолжительная задержка запуска?
имеется docker с базой данных Postgresql к которому цепляется Django,но возникает проблема из за скорости запуска PSQL соответственно возникает вот это:
web_1 | Is the server running on host "postgresdb" (172.22.2.2) and accepting
web_1 | TCP/IP connections on port 5432?
pg_1 LOG: database system is ready to accept connections
Каким способом будет правильно установить задержку запуска web_1 на котором висит Django. Или в самом Django правильнее настроить RECONNECT как вы решили данную проблему?
depends_on:
Срабатывает но база данных не успевает создать необходимые таблицы до запуска django. Спасибо!
'OPTIONS': {
'connect_timeout': 20,
}
Тоже не влияет :(
Ответы (1 шт):
Например, можно использовать healthcheck для базы данных прямо в docker-compose:
version: '3.4'
services:
postgres:
image: postgres:12
ports:
- 5432
logging:
driver: none
healthcheck:
test: pg_isready
interval: 10s
timeout: 5s
retries: 3
Тогда контейнер с БД будет считаться поднятым, когда пострес действительно стартанул и готов принимать запросы.
Также можно использовать команду pg_isready и со стороны контейнера с django, во время старта контейнера (в bash-скрипте).