バックグラウンド
Docker コンテナーで Python スクリプトを実行するとき、出力の動作は、コンテナーが対話型で実行されるか切り離されて実行されるかによって異なる場合があります。 mode.
問題
分離モード (-d フラグ) では、コンテナーが正常に実行されているように見えても、Python スクリプトは出力を出力しないことがあります。この問題は、Dockerfile 内の CMD ["python", "main.py"] で開始された Python (バージョン 2.7) アプリに影響します。
原因
問題の原因は次のとおりです。 Python のデフォルトのバッファ出力動作。デタッチ状態で実行している場合、コンテナーの出力バッファーは自動的にフラッシュされないため、特定のしきい値に達するまで蓄積されます。これにより、切り離し中に出力が表示されなくなります。
解決策
この問題を解決するには、バッファなし出力 (-u フラグ) を使用します。
CMD ["python", "-u", "main.py"]
これにより、stdout と stderr が強制的にバッファリングされなくなり、出力をデタッチされた状態ですぐに表示できるようになります。
説明
バッファなし出力を有効にすることで、切り離された実行中にコンテナの出力をリアルタイムで表示できます。
以上がDocker 化された Python アプリを切り離して実行すると出力が表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。