2017-11-23 43 views
5

मेरे पास एक नोडजेएस प्रोजेक्ट है जो मोंगोडीबी का उपयोग करता है। मैं इस सेवा को डॉकर कंटेनर में चलाने के लिए चाहता हूं, लेकिन कई उदाहरणों के बावजूद मैंने अपनी शिक्षा को आधारित किया है, यह काम नहीं करेगा। यहाँसीखना नोडजेएस और मोंगोडीबी डॉकर लिखें

FROM node:9-alpine 
WORKDIR /usr/src/app 
COPY package.json /usr/src/app 
RUN npm install 
RUN npm install pm2 -g 
COPY . /usr/src/app 
EXPOSE 3000 
CMD ["pm2-docker", "start", "process.json"] 

और मेरे /heimdall_jwt/docker-compose.yml

version: '2' 
    # Define the services/containers to be run 
services: 
    myapp: #name of your service 
     build: ./ # specify the directory of the Dockerfile 
     ports: 
      - "3000:3000" #specify ports forwarding 
     links: 
      - database # link this service to the database service 
     volumes: 
      - .:/usr/src/app 
     depends_on: 
      - database  
    database: # name of the service 
     image: mongo # specify image to build container from 

मैं के माध्यम से चल रहा है की कोशिश की है:

यहाँ मेरी /heimdall_jwt/Dockerfile है $ डोकर - अपरिवर्तित करें - बिल्ड जिसके परिणामस्वरूप मोंगो निर्माण और शुरू हो रहा है। यहाँ गाढ़ा उत्पादन होता है:

Building myapp 
Step 1/8 : FROM node:9-alpine 
... 
Step 4/8 : RUN npm install 
---> Using cache 
---> befb91b1324c 
... 
Removing intermediate container 945eb0ad40d5 
Successfully built b500f7ec9b89 
Successfully tagged heimdalljwt_myapp:latest 
Creating heimdalljwt_database_1 ... 
Creating heimdalljwt_database_1 ... done 
Creating heimdalljwt_myapp_1 ... 
Creating heimdalljwt_myapp_1 ... done 
Attaching to heimdalljwt_database_1, heimdalljwt_myapp_1 
database_1 | 2017-11-25T21:15:39.001+0000 I INDEX [initandlisten] building index using bulk method; build may temporarily use up to 500 megabytes of RAM 
database_1 | 2017-11-25T21:15:39.002+0000 I INDEX [initandlisten] build index done. scanned 0 total records. 0 secs 
database_1 | 2017-11-25T21:15:39.003+0000 I COMMAND [initandlisten] setting featureCompatibilityVersion to 3.4 
database_1 | 2017-11-25T21:15:39.005+0000 I NETWORK [thread1] waiting for connections on port 27017 
myapp_1  | 0|heimdall | Error: Cannot find module 'bcryptjs' 
myapp_1  | 0|heimdall |  at Function.Module._resolveFilename (module.js:542:15) 
myapp_1  | 0|heimdall |  at Function.Module._load (module.js:472:25) 
myapp_1  | 0|heimdall |  at Module.require (module.js:585:17) 
myapp_1  | 0|heimdall |  at require (internal/module.js:11:18) 
myapp_1  | 0|heimdall |  at Object.<anonymous> (/usr/src/app/user/User.js:2:14) 
myapp_1  | 0|heimdall |  at Module._compile (module.js:641:30) 
myapp_1  | 0|heimdall |  at Object.Module._extensions..js (module.js:652:10) 
myapp_1  | 0|heimdall |  at Module.load (module.js:560:32) 
myapp_1  | 0|heimdall |  at tryModuleLoad (module.js:503:12) 
myapp_1  | 0|heimdall |  at Function.Module._load (module.js:495:3) 
myapp_1  | 0|heimdall |  at Module.require (module.js:585:17) 
myapp_1  | 0|heimdall |  at require (internal/module.js:11:18) 
myapp_1  | 0|heimdall |  at Object.<anonymous> (/usr/src/app/user/UserController.js:12:12) 
myapp_1  | 0|heimdall |  at Module._compile (module.js:641:30) 
myapp_1  | 0|heimdall |  at Object.Module._extensions..js (module.js:652:10) 
myapp_1  | 0|heimdall |  at Module.load (module.js:560:32) 
myapp_1  | PM2  | App name:heimdall_app id:0 disconnected 

मैं अनिश्चित यहाँ क्या चल रहा है, लेकिन मैं अनुमान लगा रहा हूँ कि निर्भरता या तो स्थापित नहीं किया जा रहा है, या कार्यशील निर्देशिका में कॉपी किया जा रहा है। कैसे

UPDATED मूल पोस्टिंग से संशोधित रूप में मैं अभी भी इस काम करने के लिए प्राप्त करने के लिए संघर्ष कर रहा हूँ।

+2

आप https://stackoverflow.com/questions/37454548/docker-compose- में इसी तरह के मुद्दे पा सकते हैं नो-इमेज –

+0

धन्यवाद, इससे थोड़ा सा समय बढ़ने में मदद मिली, लेकिन मैं अभी भी इस चीज़ को चलाने में असमर्थ हूं। मैंने अपने अवलोकन के साथ पोस्ट अपडेट किया। – sonoerin

+0

जो कि अनुपलब्ध संकुलों के कारण है, आपको heimdall_jwt dockerfile में परिवर्तन करना होगा, npm इंस्टॉल करने से पहले सभी आवश्यक संकुल अधिष्ठापित करें –

उत्तर

3

आपnpm install के बाद फ़ाइलों कॉपी चाहिए। अभी आप निर्भरताओं को स्थापित कर रहे हैं और फिर सब कुछ कॉपी कर रहे हैं, इसलिए आप प्रभावी रूप से उस इंस्टॉलेशन को रद्द कर रहे हैं और आपके पास निर्भरता नहीं है।

अपने Dockerfile में आप हैं:

... 
RUN npm install 
RUN npm install pm2 -g 
COPY . /usr/src/app 
... 

यह होना चाहिए:

... 
COPY . /usr/src/app 
RUN npm install 
RUN npm install pm2 -g 
... 
+0

मुझे यह मिलता है: चरण 5/8: रन एनपीएम इंस्टॉल करें ---> 39ee34e1ce11 एनपीएम ईआरआर में चल रहा है! JSON में अप्रत्याशित टोकन} स्थिति 124674 एनपीएम ईआरआर पर! इस रन का एक पूरा लॉग इन में पाया जा सकता है: एनपीएम ईआरआर! /root/.npm/_logs/2017-11-28T01_28_32_360Z-debug.log त्रुटि: सेवा 'myapp' बनाने में विफल: कमांड '/ bin/sh -c npm install' ने एक गैर-शून्य कोड लौटाया: 1 लेकिन मैं समस्या निवारण के लिए कहीं भी .log फ़ाइल नहीं मिल सकती है – sonoerin

+0

अपने package.json की समस्या निवारण करें। ऐसा कुछ निकालें जो आपको लगता है कि यह हो सकता है और पुनः प्रयास करें ... –

+0

आपको COPY और RUN npm इंस्टॉल करने के क्रम को बदलने के बाद वह त्रुटि मिली है? –

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