2016-06-08 7 views
1

없는 이미지 빌드 내가 docker run -p 4500:4500 myname/my-docker-image[PM2] [ERROR] 파일 processes.json가 내 노드 JS 응용 프로그램을로드 할 dockerfile을 사용하고

내가 응답을받을 명령을 실행할 때 어떤 이유로 성공 :

pm2 launched in no-daemon mode (you can add DEBUG="*" env variable to get more messages) 
2016-06-08 06:29:17: [PM2][WORKER] Started with refreshing interval: 30000 
2016-06-08 06:29:17: [[[[ PM2/God daemon launched ]]]] 
2016-06-08 06:29:17: BUS system [READY] on port /root/.pm2/pub.sock 
2016-06-08 06:29:17: RPC interface [READY] on port /root/.pm2/rpc.sock 
2016-06-08 06:29:17: [PM2][ERROR] File processes.json not found 
2016-06-08 06:29:17: 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │ 
└──────────┴────┴──────┴─────┴────────┴─────────┴────────┴────────┴──────────┘ 
2016-06-08 06:29:17: Use `pm2 show <id|name>` to get more details about an app 
2016-06-08 06:29:17: --no-daemon option enabled = do not exit pm2 CLI 
2016-06-08 06:29:17: PM2 daemon PID = 1 
2016-06-08 06:29:17: [PM2] Streaming realtime logs for [all] processes 

kicker는 pm2 용 빌드에서 명확하게 정의 된 processes.json 파일입니다.

"apps": [ 
     { 
      "name": "jira-accelo-integration", 
      "script": "server.js", 
      "merge_logs": true, 
      "max_restarts": 20, 
      "instances": 4, 
      "DEBUG": "*", 
      "max_memory_restart": "200M", 
      "env": { 
       "PORT": 4500, 
       "NODE_ENV": "production" 
      } 
     } 
    ] 
} 
+1

가장 중요한 사항은 다음과 같습니다. 1) processes.js의 경로 2) pm2에 전달하는 방법 – Molda

+0

processes.js의 경로는 무엇입니까? processes.js에 대한 pm2 문서 어디서나 찾을 수 없습니다 –

+0

죄송하지만 분명히 ** processes.json ** – Molda

답변

0

나는이 오류하지만 내 경우에는 문제가 훨씬 더 간단 것으로 판명를 얻고 있었다, 파일 이름에 오타가 내 프로세스를 생성 : 여기

내 processes.json 파일의 내용입니다 .json 파일. 문제를 해결하기 위해 수행 한 단계는 다음과 같습니다.

대화 형 모드에서 셸로 도커 컨테이너를 실행하십시오. 올바른 작업 디렉토리에서 시작 했습니까? processes.json 파일을 포함하여 모든 파일이 제 위치에 있습니까? 대화식 세션에서 pm2 start processes.json을 실행하면 제대로 작동합니까?

$ docker run -it jla/dockerizing-node-app bash 
[email protected]:/var/www/app/current# pm2 start processes.json --no-daemon 

주석 처리 Dockerfile에서 CMD와는 processes.json 파일을 볼 수있는 명령을 확인하는 새로운 하나를 추가 할 수 있습니다.

$ edit Dockerfile 
CMD ["ls" "-l" "processes.json"] 
$ docker build -t jla/dockerizing-node-app . 
$ docker run -p 4500:4500 jla/dockerizing-node-app 

이 시점에서 ls가 실패하면 내 파일 이름이 process.json 인 것으로 나타났습니다. 어쩌면 ls 명령도 실패 할 수는 있지만 다른 이유로는 올바른 작업 영역을 사용하지 않는 것입니다. ls -l 및 pwd와 같은 다른 명령을 사용하여 명령의 관점에서 컨테이너에서 진행중인 작업을 확인하십시오. 당신은 약간의 끈기와주의 깊은 관찰로 작동하도록 할 수 있어야합니다.