sql >> Database teknologi >  >> RDS >> PostgreSQL

Docker-compose afhænger af ikke at vente, indtil afhængig af tjenesten ikke er helt startet

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)




  1. Sådan skriver du en SQL-forespørgsel med dynamisk LIMIT

  2. Implementering af Type 2 SCD i Oracle

  3. Ingen ændringer registreret, når jeg udelukker Python manage.py-makemigrationer og migrerer

  4. Database:Kan jeg have nullbare attributter i en tredje normalform database?