Да.
Първо осъзнайте, че depends-on
е почти напълно безполезен. Docker не знае нищо за вашето приложение; няма начин да разбере, че вашият сървър на база данни всъщност не е готов да обслужва заявки.
Правилното решение е да кодирате вашето приложение така, че (а) то да опита повторно първоначалната връзка с базата данни, докато не е готово, и (б) да се свърже отново с базата данни, ако връзката се провали. (a) решава проблема, за който питате, и (b) ви позволява да рестартирате контейнера на базата данни независимо от контейнера на приложението.
Ако не контролирате кода в контейнера на вашето приложение, можете да обвиете основната си команда със скрипт на обвивка, който прави нещо като:
while ! psql -c 'select 1'; do
sleep 1
done
(Задаване на подходящи опции за удостоверяване или настройка на .pgpass
файл)