sql >> Database >  >> RDS >> PostgreSQL

Docker-compose is afhankelijk van het niet wachten tot afhankelijk van de service niet volledig is gestart

Ja.

Realiseer je eerst dat depends-on is bijna geheel nutteloos. Docker weet niets over uw toepassing; het heeft geen manier om te vertellen dat uw databaseserver niet echt klaar is om verzoeken te verwerken.

De juiste oplossing is om uw toepassing zo te coderen dat (a) het de initiële databaseverbinding opnieuw probeert totdat deze gereed is, en (b) het opnieuw verbinding maakt met de database als de verbinding zou mislukken. (a) lost het probleem op waar u naar vraagt, en (b) stelt u in staat de databasecontainer opnieuw te starten, onafhankelijk van de toepassingscontainer.

Als u de code in uw toepassingscontainer niet beheert, kunt u uw hoofdopdracht omwikkelen met een shellscript dat zoiets doet als:

while ! psql -c 'select 1'; do
  sleep 1
done

(De juiste authenticatie-opties instellen of een .pgpass instellen bestand)




  1. FOUT:null-waarde in kolom-ID schendt niet-null-beperking

  2. Hoe Android Studio verbinden met SQL Server-database?

  3. PHP:Waarden van het formulier invoegen in MySQL

  4. SQL-UPDATE