2014-10-07 6 views
9

도커 컨테이너에 영원히 시작 노드가있을 때 수동으로 실행하면 Dockerfile에서 동일한 명령이 실행되고 컨테이너를 빌드하고 시작할 때 문제가 발생합니다. bash는 명령 작품 :도커 컨테이너에 영원히 오류가있는 노드 시작

docker run -it container_name bash forever start -c 'node --harmony' /my/path/app.js 

나는 Dockerfile에 명령을 넣어 시도했지만 컨테이너는

CMD forever start -c 'node --harmony' /my/path/app.js 
+0

당신을 위해 그것을 시작하는 작은 bash는 스크립트를 만듭니다. 이것이 우리가하는 일입니다. – tkone

+0

을 대신 사용하여 도커 다시 시작 정책 항상 사용 – milan

+0

궁금한 점이 있더라도 왜 도커로 영원히 사용해야합니까? 도커가 노드를 직접 실행하지 않는 이유는 무엇입니까? –

답변

20

Google Group discussion

Forever start script.js 백그라운드에서 실행됩니다. 포 그라운드에서 forever을 실행하려면 forever script.js을 시도하십시오.

이 도커 무엇을 필요로하는지이다 전경, 영원히 시작합니다. CMD에 정의 된 프로세스가 실행되고있는 동안에 만 컨테이너가 "활성"상태라는 것을 기억하십시오. 영원히 데몬으로 시작하기 때문에 명령 자체가 종료되고 도커도 종료됩니다. 당신의 Dockerfile에서

CMD forever -c 'node --harmony' /my/path/app.js 
+3

현재 포어 그라운드 러닝을 영원히 방해하는 ** [공개 문제] (https://github.com/foreverjs/forever/issues/729) **가 있습니다. 종료. – Gaston

0

가 배열 구문을 사용하여보십시오 시작되지 않습니다 작동하지

CMD ["forever", "start", "-c", "node --harmony", "/my/path/app.js"] 
+0

아니요, 같은 문제가 아니라 작동 – hellb0y77

-1

을 , 나는 2 개의 명령으로 시도했다 :

CMD ["forever","start","-c","'node --harmony'","/my/path/app.js"] 

CMD ["forever","start","-c","node --harmony","/my/path/app.js"] 

용기에 입력하고 실행하면

forever start -c 'node --harmony' /my/path/app.js 작품

0

넣어 :

CMD forever app.js