배경
Docker 컨테이너에서 Python 스크립트를 실행할 때, 출력 동작은 컨테이너가 대화형으로 실행되는지 분리형으로 실행되는지에 따라 달라질 수 있습니다. mode.
문제
분리 모드(-d 플래그)에서는 컨테이너가 정상적으로 실행되는 것처럼 보이더라도 Python 스크립트가 출력을 인쇄하지 않을 수 있습니다. 이 문제는 Dockerfile에서 CMD ["python", "main.py"]로 시작된 Python(버전 2.7) 앱에 영향을 미칩니다.
원인
문제의 원인은 다음과 같습니다. Python의 기본 버퍼링된 출력 동작입니다. 분리 실행 시 컨테이너의 출력 버퍼는 자동으로 플러시되지 않으므로 특정 임계값에 도달할 때까지 누적됩니다. 이로 인해 분리 중에 표시되는 출력이 없습니다.
해결책
이 문제를 해결하려면 버퍼링되지 않은 출력(-u 플래그)을 사용하십시오.
CMD ["python", "-u", "main.py"]
이렇게 하면 stdout 및 stderr이 버퍼링 해제되어 출력이 분리된 상태로 즉시 표시될 수 있습니다. 컨테이너.
설명
버퍼링되지 않은 출력을 활성화하면 분리 실행 중에 컨테이너의 출력을 실시간으로 볼 수 있습니다.
위 내용은 Dockerized Python 앱이 분리되어 실행될 때 출력이 표시되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!