2014-12-04 3 views
11

그래서 Docker 컨테이너에서 실행되는 파이썬 코드가 있습니다. Google의 gcloud 스크립트를 사용하여 로컬 env를 시작했습니다. 기본 액세스 스타일 로그와 상태 정보를보고 있지만 파이썬 앱에서 콘솔로 쓰는 로그 메시지를 어떻게 전달할 수 있는지 잘 모르겠습니다. gcloud 스크립트로이를 수행하기 위해 설정할 수있는 매개 변수가 있습니까? 아니면 도움이 될 수있는 Dockerfile에서 설정할 수있는 매개 변수가 있습니까? 파이썬은 터미널/명령 줄/콘솔에 로그인 할Docker 컨테이너에서 실행되는 Python 응용 프로그램의 출력을 어떻게 표시합니까?

+3

자신을 실행중인 컨테이너에 [attach] (https://docs.docker.com/reference/commandline/cli/#attach) 할 수도 있고 [docker logs] (https : //docs.docker. co.kr/reference/commandline/cli/# logs). 또한 [docker run -a] (https://docs.docker.com/reference/commandline/cli/#run)를 사용하여 컨테이너를 시작할 때 자신을 첨부 할 수 있습니다. 이 정보가 도움이되기를 바랍니다. –

+1

은 더 많은 지원을 받기 위해'Dockerfile'을 공유합니다. 컨테이너 내부의 로그는 어디에 있습니까? 일반적으로 컨테이너 내부의 콘솔 (stdout/stderr)에 로그를 출력하고, 외부에'docker logs'를 사용할 수 있습니다. 항상'docker exec' 명령을 사용하여 내부 앱으로 이동하여 일반 앱처럼 로그를 확인할 수 있습니다 –

+0

도움 주셔서 감사합니다. "docker logs"는 제가 찾고있는 로그였습니다. 제가 누락 된 부분은 실행중인 고정식 프로세스 ID (도커 ps)를 얻는 방법 이었으므로 로그 명령에이 ID를 제공 할 수있었습니다. 둘 중 한 명이 답을 쓸 수 있으면 나는 그 답을 정확하게 표시 할 것입니다. – Brandon

답변

17

는 고정 표시기 컨테이너에서 실행될 때, 당신은 당신이 있다면이 또한 유효한 솔루션입니다 귀하의 docker-compose.yml

environment: 
    - PYTHONUNBUFFERED=0 

이 변수가 설정되어 있어야 print을 사용하여 디버그하십시오.

+3

내 하루를 만들었습니다. 고맙습니다. –

+1

기꺼이 도움이 될 수 있습니다 :) – Sentient07

+0

나는 docker-compose를 사용하고 있는데 컨테이너 중 하나가 Django를 실행 중입니다. "engeirroment"변수를 추가 할 때까지 "mange.py runserver"메시지가 인쇄되고 있지만 (GET 및 POST 요청이 모두 표시됨) 내 인쇄 메시지가 표시되지 않았습니다. 감사합니다. – pitervergara

관련 문제