2017-11-23 89 views
5

MongoDB kullanan bir NodeJS projem var. Bu hizmeti bir Docker konteynırında çalıştırmak isterim, fakat öğrenimime dayanan birçok örneğe rağmen, bu işe yaramayacak. $ liman işçisi: my /heimdall_jwt/docker-compose.yml ben üzerinden çalışan çalıştıÖğrenme DüğümüJS & MongoDB Docker oluşturma

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 

burada

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"] 

Ve: İşte

benim /heimdall_jwt/Dockerfile olduğunu - Oluşturun ve başlatan mongo ile sonuçlanan
. İşte yoğunlaştırılmış çıktı şöyledir:

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 

Burada neler olduğunu belirsiz, ama ben bağımlılıkları ya yüklenmekte olmadığını tahmin ediyorum, ya çalışma dizine kopyalanan değil. Nasıl çalıştığını hala öğrenmek için uğraşırken asıl gönderiden itibaren değiştirildi.

+2

sen https://stackoverflow.com/questions/37454548/docker-compose- benzer sorunu bulabilirsiniz no-such-image –

+0

Teşekkürler, bu biraz uzun sürmesine yardımcı oldu, ama ben hala bu şeyi çalıştırmayı başaramıyorum. Gönderiyi gözlemimle güncelledim. – sonoerin

+0

eksik paketler nedeniyle, heimdall_jwt dockerfile'da değişiklikler yapmak zorundasınız, npm kurulumuna başlamadan önce gerekli tüm paketleri kurun –

cevap

3

npm install dosyalarından dosyalarını kopyalamalısınız. Şu anda bağımlılıklar yüklüyorsunuz ve sonra her şeyi kopyalıyorsunuz, bu yüzden bu yüklemeyi etkin bir şekilde iptal ediyorsunuz ve bağımlılıklarınız yok. senin Dockerfile yılında

sahip:

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

Olmalıdır:

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

Bunu anladım: Adım 5/8: RUN npm'yi yükleyin ---> 39ee34e1ce11'de Çalışıyor npm ERR! Beklenmeyen simge} JSON konumunda 124674 npm ERR! Bu çalışmanın tam bir kaydı şu adreste bulunabilir: npm ERR! /root/.npm/_logs/2017-11-28T01_28_32_360Z-debug.log HATA: Hizmet 'myapp' şunları yapamadı: '/ bin/sh -c npm install' komutu sıfır olmayan bir kod döndürdü: 1 .log dosyasını – sonoerin

+0

sorunlarını gidermek için bulamadı. package.json sorunlarını giderin. Bunu neden olabileceğini düşündüğünüz bir şeyi kaldırın ve tekrar deneyin ... –

+0

Bu hatayı COPY ve RUN npm kurulum sırasını değiştirdikten sonra aldınız mı? –