Ja.
Først skal du indse, at depends-on
er næsten helt ubrugelig. Docker ved ikke noget om din applikation; den har ingen måde at fortælle, at din databaseserver faktisk ikke er klar til at servicere anmodninger.
Den korrekte løsning er at kode din applikation, så (a) den vil prøve den indledende databaseforbindelse igen, indtil den er klar, og (b) den vil genoprette forbindelse til databasen, hvis forbindelsen skulle mislykkes. (a) løser det problem, du spørger om, og (b) giver dig mulighed for at genstarte databasebeholderen uafhængigt af applikationsbeholderen.
Hvis du ikke kontrollerer koden i din applikationscontainer, kan du ombryde din hovedkommando med et shell-script, der gør noget som:
while ! psql -c 'select 1'; do
sleep 1
done
(Indstilling af passende godkendelsesindstillinger eller opsætning af en .pgpass
fil)