Wadah Docker dengan Samba keluar tanpa pesan apa pun

8

Kami memiliki server yang menjalankan CentOS, di mana ada beberapa layanan dalam wadah Docker untuk memisahkan mereka dari perubahan host.

Jumat pekan lalu kami menjalankan pembaruan pada CentOS, dan sejak itu salah satu layanan kami mulai dan segera keluar. 15+ layanan lainnya baik-baik saja.

Saya mengkloning pengaturan wadah, mengubah nama wadah dan membangun kembali dengan masalah yang sama: wadah mulai dan kemudian keluar tanpa pesan apa pun.

Wadah ini berasal dari wadah samba David Personette . Perintah aktual yang keluar sekarang tetapi tidak digunakan adalah:

exec ionice -c 3 smbd -FS

Haruskah saya menurunkan pekerja pelabuhan yang akan memiliki efek samping? Apakah ada hal lain yang bisa saya lakukan untuk menjalankan ini lagi? Kami memilih wadah untuk abstrak dari sistem operasi, apakah abstraksi itu tidak sebagus yang diharapkan?

john
sumber
Apa yang terjadi jika Anda menjalankan shell di wadah dan kemudian menjalankan perintah itu secara manual?
jordanm
Saya mengalami kesulitan untuk mencoba itu, wadah memiliki titik masuk dan memerlukan parameter baris perintah untuk memulai. Dan jika itu akan berhasil, saya tidak tahu bagaimana menggunakannya dalam produksi, apakah itu mungkin?
john

Jawaban:

8

Kontainer akan keluar tanpa komentar apa pun, kecuali jika Anda meningkatkan level debug. Anda dapat menggunakan sesuatu seperti --debuglevel=4.

Setelah Anda melakukannya, membangun kembali dan memulai kembali wadah Anda akan mendapatkan sesuatu di akhir seperti:

Server exit (EOF on stdin)

Dan itu menunjuk solusi, ubah smbdpermohonan menjadi:

exec ionice -c 3 smbd -FS < /dev/null

dan wadah Anda seharusnya tidak lagi langsung keluar.

Saya tidak yakin apa yang menyebabkan perubahan mundur yang tidak kompatibel ini, atau mengapa ini tidak diuji terhadap entri dockerhub yang ada.

Saya memiliki dua kontainer saya yang rusak juga saat meningkatkan ke 1.11. dan saat menurunkan ke 1.10.3, menabrak Cannot stop container .... Container does not exist: container destroyedbug yang ditakuti . Saya harus menghentikan buruh pelabuhan, menghapus semua sejarah, jadi saya tidak bisa merekomendasikan hal itu.

Anthon
sumber
Ini membantu saya menyelesaikan masalah kemarin, tanpa harus menurunkan versi!
john
1
Saya membaca di suatu tempat bahwa Samba berhenti sebenarnya adalah fitur. Ia mencoba mendeteksi apakah proses induknya telah mati (EOF pada stdin). Solusi Anda bekerja dengan sempurna.
Martin