Ja.
Först, inse att depends-on
är nästan helt värdelös. Docker vet ingenting om din applikation; det går inte att säga att din databasserver faktiskt inte är redo att betjäna förfrågningar.
Den korrekta lösningen är att koda din applikation så att (a) den kommer att försöka göra om den ursprungliga databasanslutningen tills den är klar, och (b) den återansluter till databasen om anslutningen skulle misslyckas. (a) löser problemet du frågar om, och (b) låter dig starta om databasbehållaren oberoende av applikationsbehållaren.
Om du inte kontrollerar koden i din applikationsbehållare kan du slå in ditt huvudkommando med ett skalskript som gör något i stil med:
while ! psql -c 'select 1'; do
sleep 1
done
(Ställa in lämpliga autentiseringsalternativ eller ställa in en .pgpass
fil)