2015-01-08 18 views
5

पर डॉकर चल रहा है मैं node.js ऐप को डॉकराइज करने के लिए इस ट्यूटोरियल का अनुसरण कर रहा हूं और यह हमेशा डॉकरफ़ाइल में 'npm इंस्टॉल' भाग में विफल रहता है। http://docs.docker.com/examples/nodejs_web_app/एनपीएम इंस्टॉलेशन त्रुटि सेंटोस

त्रुटि मैं हो रही है नीचे दिखाया गया है:: यहाँ ट्यूटोरियल के लिए लिंक है

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 छवि को छोड़कर एक ही सेटअप किया है और यह या तो काम नहीं करता है, लेकिन यह काम करता है अगर मैं मैन्युअल रूप से छवि में जाता हूं और नोडजेस सर्वर स्वयं शुरू करता हूं।

यदि डॉकर या एनपीएम के साथ अधिक अनुभव वाला कोई भी व्यक्ति इस मुद्दे पर मदद कर सकता है तो यह बहुत अच्छा होगा।

धन्यवाद!

+0

क्या /src/package.json मौजूद है? नाम या कुछ भी कोई अतिरिक्त पात्र नहीं है? – vogonistic

+0

उस डॉकर के ठीक ऊपर उस छवि की एक छवि आईडी मुद्रित की जाएगी जिसमें वह उस आदेश को चला रहा है। 'डॉकर रन {image_id}/bin/bash' फिर 'ls' और देखें कि package.json मौजूद है या नहीं। – generalhenry

+0

@ वोगोनिस्टिक हां मेरी /src/package.json फ़ाइल मौजूद है और इसे ठीक से लिखा गया है, क्या कोई विचार है कि एनपीएम फ़ाइल क्यों नहीं ढूंढ पा रहा है? – Jamaal

उत्तर

3

मुझे यह समस्या हो रही थी, डॉकर ट्यूटोरियल थोड़ा अस्पष्ट है और यदि आप COPY के व्यवहार को समझ नहीं पाते हैं तो निर्देशिका पेड़ को पेंच करना आसान बनाता है।

मैं इस निर्देशिका के पेड़ था:

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

आदेश डोकर छवि में COPY . /src परिणाम निम्न पेड़ में:

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

तो बुनियादी तौर पर, package.json और index.js एक ही फ़ोल्डर में डाल के रूप में अपने डॉकरफाइल और इसे ठीक काम करना चाहिए।


एक दूसरी बात, जब इस तरह एक असफल निर्माण डीबगिंग, आप छवि आईडी निर्देशिका वृक्ष पर एक नज़र भले ही कंटेनर नहीं चल रहा है के लिए उपयोग कर सकते हैं। उदाहरण के लिए, निम्नलिखित docker build उत्पादन को देखते हुए:

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

इस मामले में छवि आईडी, 3084f3523d93 है ताकि आप/src निर्देशिका का निरीक्षण किया और देखते हैं कि गलत हो गया था करने के लिए docker run --rm 3084f3523d93 ls -lR /src चला सकते हैं। वैकल्पिक रूप से, शेल और पोक करने के लिए ls -lR /src के स्थान पर /bin/bash का उपयोग करें।

संबंधित मुद्दे