node.js - 如何编写 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"]
解决方案
推荐阅读
- image-processing - 如何使用opencv-python从轮廓中找到点
- spring - 未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值
- mockito - Mockito junit 5 模拟构造函数
- java - 获取消息说话失败:未绑定到 TTS 引擎
- python - 错误:mysqlclient-1.4.6-cp38-cp38-win_amd64.whl 不是此平台支持的轮子
- node.js - 使用 Yarn 安装节点包或 Node_Modules 时出现“无法获取本地颁发者证书”错误
- python - PyQt5 按钮单击事件未在单击预期按钮时触发
- javascript - Lodash过滤器给定具有多个条件的json数组
- reactjs - 从 React 容器获取 props 到功能组件
- python - macOS Catalina 或 Big Sur 上的“import cppyy”异常