Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah output Python bekas Docker saya yang terpisah hilang, dan bagaimana saya boleh membetulkannya?

Mengapakah output Python bekas Docker saya yang terpisah hilang, dan bagaimana saya boleh membetulkannya?

Barbara Streisand
Lepaskan: 2024-11-24 07:08:12
asal
514 orang telah melayarinya

Why is my detached Docker container's Python output missing, and how can I fix it?

Bekas Python Terpisah: Output Tidak Tertimbal untuk Pembalakan

Apabila menjalankan aplikasi Python dalam bekas Docker yang terpisah menggunakan bendera -d, anda boleh menghadapi kekurangan keluaran daripada bekas. Walaupun bekas kelihatan berjalan, penyataan cetakan yang dijangka daripada aplikasi tidak kelihatan dalam log atau melalui sesi terminal yang dilampirkan.

Isunya terletak pada gelagat fungsi cetakan Python. Secara lalai, Python menampan outputnya untuk meningkatkan prestasi. Penimbalan ini tidak kelihatan serta-merta dalam cengkerang interaktif, di mana output dicetak sebaik sahaja aksara baris baharu ditemui.

Apabila dijalankan dalam bekas yang terpisah, keluaran aplikasi ditimbal dan mungkin tidak disiram serta-merta. Untuk menyelesaikan masalah ini, gunakan output tidak buffer dengan menambahkan bendera -u pada perintah Python dalam CMD Dockerfile:

CMD ["python", "-u", "main.py"]
Salin selepas log masuk

Dengan menggunakan output tidak buffer, strim stdout dan stderr Python disiram serta-merta, membenarkan log menangkap penyata cetakan. Anda kemudiannya boleh melihat output melalui:

docker logs myapp
Salin selepas log masuk

Nota:

Bendera -u memaksa keluaran tidak buffer, yang mungkin mengurangkan prestasi dalam beberapa kes. Jika anda lebih suka mengawal tingkah laku penimbalan output secara manual, pertimbangkan untuk menggunakan modul pengelogan atau melaksanakan penyelesaian penimbalan anda sendiri.

Atas ialah kandungan terperinci Mengapakah output Python bekas Docker saya yang terpisah hilang, dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan