PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Docker-compose зависи от това да не се изчаква, докато зависимата от услугата не се стартира напълно

Да.

Първо осъзнайте, че depends-on е почти напълно безполезен. Docker не знае нищо за вашето приложение; няма начин да разбере, че вашият сървър на база данни всъщност не е готов да обслужва заявки.

Правилното решение е да кодирате вашето приложение така, че (а) то да опита повторно първоначалната връзка с базата данни, докато не е готово, и (б) да се свърже отново с базата данни, ако връзката се провали. (a) решава проблема, за който питате, и (b) ви позволява да рестартирате контейнера на базата данни независимо от контейнера на приложението.

Ако не контролирате кода в контейнера на вашето приложение, можете да обвиете основната си команда със скрипт на обвивка, който прави нещо като:

while ! psql -c 'select 1'; do
  sleep 1
done

(Задаване на подходящи опции за удостоверяване или настройка на .pgpass файл)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ActiveRecord - изберете първия запис от всяка група

  2. Вътрешно съединение със SqlAlchemy

  3. Алтернативен изходен формат за psql

  4. Как ефективно да избера предишната ненулева стойност?

  5. Къде PostgreSQL съхранява конфигурационни/conf файлове?