2015-01-08 6 views
5

이 자습서를 따라 node.js 앱을 도킹하고 Dockerfile의 'npm install'부분에서 항상 실패합니다. http://docs.docker.com/examples/nodejs_web_app/CentOS에서 Docker를 실행하는 중에 NPM 설치 오류가 발생했습니다.

내가지고있어 오류는 다음과 같습니다 : 여기에 튜토리얼에 대한 링크입니다 내가 여러 소스를 검색 한

npm ERR! install Couldn't read dependencies 
npm ERR! Error: ENOENT, open '/src/package.json' 
npm ERR! If you need help, you may report this log at: 
npm ERR!  <http://github.com/isaacs/npm/issues> 
npm ERR! or email it to: 
npm ERR!  <[email protected]> 

npm ERR! System Linux 3.13.0-43-generic 
npm ERR! command "node" "/usr/bin/npm" "install" 
npm ERR! cwd /src 
npm ERR! node -v v0.10.33 
npm ERR! npm -v 1.3.6 
npm ERR! path /src/package.json 
npm ERR! code ENOENT 
npm ERR! errno 34 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /src/npm-debug.log 
npm ERR! not ok code 0 

와 나는 NPM '는 찾을 수없는 이유를 잘 모르겠어요 package.json '파일에 있습니다. 또한 우분투 14.04 이미지를 제외하고 같은 설정을 했는데도 작동하지 않지만 수동으로 이미지에 들어가서 nodejs 서버를 직접 시작하면 작동합니다.

docker 또는 npm에 대한 더 많은 경험이있는 사람이라면이 문제에 도움이 될 수 있다면 좋을 것입니다.

감사합니다.

+0

/src/package.json이 있습니까? 이름에 여분의 문자가 없나요? – vogonistic

+0

docker run {image_id}/bin/bash' 그리고'ls'에서 docker가 실행중인 이미지의 이미지 ID를 출력하고 package.json이 있는지 확인합니다. – generalhenry

+0

@vogonistic 예 /src/package.json 파일이 존재하고 올바르게 입력 되었습니까? npm이 파일을 찾을 수없는 이유가 있습니까? – Jamaal

답변

3

Docker 자습서가 약간 모호하며 COPY 동작을 이해하지 못하는 경우 디렉토리 트리를 쉽게 망가뜨릴 수 있습니다.

나는이 디렉토리 트리를했다 :

workdir/Dockerfile 
workdir/src/package.json 
workdir/src/index.js 

도커 이미지에서 다음 트리에서 COPY . /src 결과 명령 :

/src/Dockerfile 
/src/src/package.json 
/src/src/index.js 

그래서 기본적으로 같은 폴더에 package.jsonindex.js을 넣어 당신의 Dockerfile 및 잘 작동합니다. 이 같은 실패 빌드를 디버깅 할 때


또 한가지, 당신은 컨테이너가 실행되지 않은 경우에도 디렉토리 트리에서 엿봄을 가지고 이미지 ID를 사용할 수 있습니다. 예를 들어, 다음 docker build 출력을 제공 :

Step 4: RUN cd /src; npm install 
---> Running in 4bce6ad89dab 
---> 3084f3523d93 
ERROR! BAD THINGS! PANIC! 

당신은/src 디렉토리를 검사하고 무엇이 잘못되었는지 볼 수 docker run --rm 3084f3523d93 ls -lR /src를 실행할 수 있도록이 경우 이미지 ID는, 3084f3523d93입니다. 또는 ls -lR /src 대신 /bin/bash을 사용하여 셸을 작성하고 주위를 훑어보십시오.

관련 문제