PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pembuatan docker bergantung pada tidak menunggu hingga layanan yang bergantung belum sepenuhnya dimulai

Ya.

Pertama, sadari bahwa depends-on hampir seluruhnya tidak berguna. Docker tidak tahu apa-apa tentang aplikasi Anda; tidak ada cara untuk mengetahui bahwa server database Anda sebenarnya tidak siap untuk melayani permintaan.

Solusi yang benar adalah mengkodekan aplikasi Anda sehingga (a) ia akan mencoba kembali koneksi database awal hingga siap, dan (b) akan menyambung kembali ke database jika koneksi gagal. (a) memecahkan masalah yang Anda tanyakan, dan (b) memungkinkan Anda untuk memulai ulang wadah basis data secara terpisah dari wadah aplikasi.

Jika Anda tidak mengontrol kode dalam wadah aplikasi Anda, Anda dapat membungkus perintah utama Anda dengan skrip shell yang melakukan sesuatu seperti:

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

(Menyetel opsi autentikasi yang sesuai atau menyiapkan .pgpass berkas)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang menyebabkan More tidak dikenali... kesalahan saat menjalankan Postgresql 11 pada mesin Windows?

  2. Cara membuang PGresult untuk perintah non-SELECT

  3. Membandingkan banyak kueri PostgreSQL

  4. psycopg2 :kursor sudah ditutup

  5. Bagaimana cara menambahkan modul ke Wildfly menggunakan CLI