Heim >Backend-Entwicklung >Python-Tutorial >Warum druckt meine Python-App nichts, wenn sie in einem getrennten Docker-Container ausgeführt wird?
Beim Ausführen einer Python-App in einem Docker-Container im getrennten Modus (-d-Flag) kann ein Problem auftreten wo die Ausgabe der App nicht ist sichtbar.
Pythons „Drucken“-Funktion verwendet gepufferte Ausgabe, was bedeutet, dass die Ausgabe nicht sofort in den stdout-Stream geschrieben wird. Bei der Ausführung im getrennten Modus wird der Containerprozess beendet, nachdem das Hauptskript (main.py) seine Schleife abgeschlossen hat. Da der Standardausgabepuffer noch nicht geleert wurde, geht die Ausgabe verloren.
Um das Problem zu beheben, aktivieren Sie die ungepufferte Ausgabe mit dem - u-Flag mit dem Python-Befehl im CMD der Docker-Datei Anleitung:
CMD ["python", "-u", "main.py"]
Bei ungepufferter Ausgabe wird die Ausgabe der App sofort auf stdout geschrieben, sodass sie bei Verwendung von Docker-Protokollen auch im getrennten Modus sichtbar ist:
$ docker run --name=myapp -d myappimage > b82db1120fee5f92c80000f30f6bdc84e068bafa32738ab7adb47e641b19b4d1 $ docker logs myapp > App started > [loop output]
Das obige ist der detaillierte Inhalt vonWarum druckt meine Python-App nichts, wenn sie in einem getrennten Docker-Container ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!