GNU/Linux >> Belajar Linux >  >> Linux

Cara mengkonfigurasi supervisor di buruh pelabuhan dengan benar

Menurut dokumentasi resmi:

Hanya ada satu CMD instruksi dalam Dockerfile . Jika Anda mencantumkan lebih dari satu CMD maka hanya CMD terakhir akan berlaku.

Dan Dockerfile Anda memiliki dua perintah CMD jadi perintah php-fpm akan menimpa

/usr/bin/supervisord

Sehingga Anda dapat menjalankan perintah PHP tetapi tidak dapat menemukan soket pengawas yang dibuat di wadah.

Anda dapat memperbaiki masalah Anda dengan menghapus CMD terakhir perintah yang terkait dengan PHP-FPM karena Anda telah mengonfigurasi supervisor untuk memulainya dan Dockerfile Anda harus memiliki satu CMD perintah:

CMD ["/usr/bin/supervisord"]

Idenya di sini adalah untuk menghilangkan pengawas dan sebagai gantinya menjalankan apa pun yang biasa dijalankan pengawas di beberapa wadah berbeda. Anda dapat dengan mudah mengatur ini dengan docker-compose , misalnya, semua menjalankan penampung yang sama dengan CMD yang berbeda menimpa, atau penampung yang sama dengan CMD yang berbeda lapisan di ujung untuk membaginya. Masalahnya di sini adalah pengawas tidak akan dapat mengomunikasikan status proses yang dikelolanya ke Docker. Itu akan selalu "hidup" bahkan jika semua prosesnya benar-benar dibuang. Mengeksposnya secara langsung berarti Anda dapat melihatnya mogok.

Yang terbaik adalah memecah masing-masing layanan ini ke dalam wadah terpisah. Karena ada yang resmi dibuat sebelumnya untuk MySQL dan seterusnya, tidak ada alasan untuk membuatnya sendiri. Yang ingin Anda lakukan adalah menerjemahkan supervisord itu konfigurasi ke docker-compose format.

Dengan wadah terpisah, Anda dapat melakukan hal-hal seperti docker ps untuk melihat apakah layanan Anda berjalan dengan benar, semuanya akan dicantumkan satu per satu. Jika Anda perlu memutakhirkan satu, maka Anda dapat melakukannya dengan mudah, Anda hanya bekerja dengan satu penampung itu, daripada harus menarik semuanya.

Cara Anda menyerangnya di sini adalah memperlakukan Docker seperti VM mewah, padahal sebenarnya tidak. Apa itu adalah manajer proses , di mana proses ini kebetulan memiliki image disk bawaan dan lapisan keamanan di sekelilingnya.

Susun lingkungan Anda dari wadah proses tunggal dan hidup Anda akan jauh lebih mudah baik dari perspektif pemeliharaan maupun pemantauan.

Jika Anda dapat menyatakan konfigurasi ini sebagai sesuatu docker-compose dapat menangani maka Anda selangkah lebih dekat untuk pindah ke lapisan manajemen yang lebih canggih seperti Kubernetes yang mungkin merupakan kesimpulan logis dari migrasi khusus ini.


Linux
  1. Cara menginstal dan mengkonfigurasi buruh pelabuhan di Debian 11

  2. Cara menginstal dan mengkonfigurasi buruh pelabuhan Di Rocky Linux/Centos 8

  3. Bagaimana Cara Menginstal Docker di Ubuntu 18.04?

  1. Cara Keluar dari Kontainer Docker

  2. Cara Mengonfigurasi Btrf sebagai Mesin Penyimpanan di Docker

  3. Bagaimana cara mengkonfigurasi macvtap agar melewati paket multicast dengan benar?

  1. Tutorial Kontainer Docker MySQL:Cara Mengatur &Mengonfigurasi

  2. Cara mengkonfigurasi buruh pelabuhan untuk menggunakan proxy

  3. Bagaimana cara keluar dari semua proses supervisor jika keluar dengan hasil 0