Apabila menjalankan aplikasi Python (2.7) dalam bekas Docker terpisah (menggunakan bendera -d), pengguna mungkin menghadapi situasi di mana pernyataan cetakan aplikasi tidak menghasilkan sebarang output.
Python menggunakan output penimbal secara lalai, bermakna ia menyimpan output dalam penimbal sebelum menghantarnya ke skrin. Dalam bekas tertanggal, penimbal ini mungkin tidak disiram dengan cukup kerap, menyebabkan ketiadaan output.
Untuk menyelesaikan isu ini, output tidak penimbal boleh digunakan dengan -u bendera:
CMD ["python", "-u", "main.py"]
Ini memastikan output ditulis ke skrin dengan serta-merta, tanpa mengira penimbalan tetapan.
Dengan output tidak buffer, pernyataan cetakan akan kelihatan dalam log Docker:
docker logs myapp > App started
Apabila bendera -u tidak digunakan, cetakan akan berkelakuan seperti berikut di dalam yang terpisah bekas:
Atas ialah kandungan terperinci Mengapa Bekas Docker Terpisah Saya Tidak Menunjukkan Output Cetakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!