2017-05-05 2 views
0

Ich habe Struktur wie folgt aus:Docker-compose starten zwei Knoten apps

├── api 
│   ├── server.js 
│   ├── Dockerfile 
├── docker-compose.yml 
└── web 
    ├── client 
    ├── Dockerfile 
    ├── node_modules 
    ├── package.json 
    └── server 

2 Dockerfiles und eine Docker compose Datei in root, wie kann ich beide Apps mit Docker laufen komponieren?

ich so versucht:

compose Datei:

services: 
    web: 
    build: ./web . 
    volumes: 
     - .:/app 
    ports: 
     - "4200:4200" 
    restart: always 
    command: npm start 
    server: 
    build ./api . 
    volumes: 
     - .:/app 
    ports: 
     - "3100:3100" 
    restart: always 
    environment: 
     - NODE_ENV=production 
    command: npm start 

Api Docker Datei Beispiel:

FROM node:6.9.4 

# Create app directory 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

RUN npm install nodemon -g 

# Install app dependencies 
COPY package.json /usr/src/app/ 
RUN npm install 

# Bundle app source 
COPY . /usr/src/app 

EXPOSE 3100 

Aber bekommen Fehler für diesen Teil: build: ./web .

Jede Lösung für Dies?

+0

Entfernen Sie den letzten Punkt ('.') und versuchen Sie es –

Antwort

0

Sie haben einen zusätzlichen Punkt auf Ihrer Build-Linie. Der Zeitraum ist normalerweise das aktuelle Verzeichnis, um den Kontext anzugeben, aber Sie müssen nur das Verzeichnis ändern, keinen zusätzlichen Abschnitt hinzufügen. Es gibt auch ein Problem mit dem Abstand in der Serverzeile, yaml-Dateien sind whitespace-sensitiv. Zuletzt, stellen Sie sicher, dass die Versionszeile enthalten ist:

version: '2' 
services: 
    web: 
    build: ./web 
    volumes: 
     - .:/app 
    ports: 
     - "4200:4200" 
    restart: always 
    command: npm start 
    server: 
    build ./api 
    volumes: 
     - .:/app 
    ports: 
     - "3100:3100" 
    restart: always 
    environment: 
     - NODE_ENV=production 
    command: npm start