docker-compose启动两个节点应用程序

我有这样的结构:

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

2 Dockerfiles和一个docker组成根文件,我怎样才能用docker组合运行这两个应用程序?

我试过这样的:

撰写文件:

 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文件示例:

 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 

但是得到这个部分的错误: build: ./web .

任何解决scheme?

你的生产线上有一个额外的点。 这段时间通常是指示上下文的当前目录,但是您只需将其更改为目录,而不是添加额外的部分。 你的服务器上还有一个空格问题,yaml文件是空格敏感的。 最后,确保包含版本行:

 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