首页 > 解决方案 > 如何编写 docker-compose 以在本地运行 npm 并在 docker 中运行 mongo

问题描述

我试图在本地运行节点,但在容器中运行 mongoDB,只是想不出最好的方法。

应该在 api 目录中运行命令并启动 npm?

我试图能够部署整个应用程序docker-compose up

这是我的文件:

docker-compose.yml
/api
    Dockerfile
    package.json
/db

这是docker-compose.yml

version: '3'
services:
  api:
    container_name: fl_api
    command: cd api && npm start
    ports:
      - "3002:3002"
    environment:
      DB_PORT: "27017"
      DB_HOST: mongo
      PORT: "3002"
    networks:
      - api_net

  mongo:
    container_name : fl_mongodb
    image: mongo:4.0
    volumes:
      - ./db/mong-vol:/data/db
    networks:
      - api_net
    expose:
      - "27017"
    healthcheck:
      test: echo 'db.stats().ok' | mongo localhost:27017/zenbrain --quiet
      interval: 5s
      timeout: 5s
      retries: 12

networks:
  api_net:
    driver: bridge

这是api/Dockerfile

FROM node:6
WORKDIR /food-license-backend
COPY package.json /food-license-backend
RUN npm install
COPY . /food-license-backend
EXPOSE 3002
CMD ["npm", "run", "start"]

标签: node.jsdockerdocker-composedockerfile

解决方案


推荐阅读