2014-10-23 3 views
0

Docker 컨테이너에서 Python 스크립트를 실행해야합니다. (현재 "ENTRYPOINT 명령으로"disco_test.py "실행 중입니다.) Disco를 사용할 것입니다. 물론 실행해야합니다. 그 컨테이너에). 문제는 Dockerfile에서 CMD 또는 RUN을 사용하여 디스코를 실행하거나 서브 프로세스 모듈을 사용하여 Python 스크립트 자체에서 디스코를 실행하지 못하는 것입니다.Docker 컨테이너에서 Disco 실행

그러나, 나는 더 ENTRYPOINT 명령으로 다른 동일한 이미지를 만드는 경우 docker run -i -t disco_test /bin/bash 그것을 실행 한 다음 파이썬 셸을 열고, 나는 성공적 디스코 (단순히 call(["disco", "start"]) 작품을 사용하여) 서브 프로세스 모듈을 사용하여 실행 얻을 수 있습니다. 파이썬 쉘을 종료 할 때 Disco가 여전히 제대로 작동하는지 확인할 수 있습니다 (disco status "Master 0cfddb8fb0e4 : 8989 running"이라고보고 함). ENTRYPOINT 명령으로 실행되는 "disco_test.py"내에서 동일한 방법 (call(["disco", "start"]) 사용)으로 Disco를 시작하려고하면 작동하지 않습니다! "Master 0cfddb8fb0e4 : 8989 started"를 인쇄하지만 나중에 disco status을 검사하면 "Master 0cfddb8fb0e4 : 8989 stopped"이 항상 표시됩니다.

ENTRYPOINT 명령이 실행되어 해당 Python 스크립트에서 Disco를 실행할 수 없게되는 것에 대해 뭔가가 있습니까? "Docker 컨테이너가 아닌"내 컴퓨터에서 "disco_test.py"를 실행하면 실제로 Disco가 성공적으로 실행됩니다.

모든 통찰력이나 제안 사항을 크게 높이세요!

답변

0

나는 그 실행이 대몬 화되고 컨테이너를 즉시 멈추게 될 것이라고 추측 할 것이다. 이 용기들을 사용해보십시오 dockerized disco. 슈퍼 바이저를 사용하여 디스코를 실행합니다.