sql >> Databasteknik >  >> RDS >> PostgreSQL

Docker-compose är beroende av att inte vänta tills beroende på tjänsten inte är helt igångsatt

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)




  1. Hur man ställer in eller testar PLSQL-kodprestanda i Oracle D2k-formulär

  2. Ställ in timeout för Oracle 10g databasanslutning i Java

  3. Är det möjligt att ladda en databas i RAM-minnet?

  4. MySQL Left Join Subselect