首页 > 解决方案 > 将 nodemon 与 docker 和 docker-compose 一起使用

问题描述

我将 nodemon 与 docker-compose 一起使用。这是我的 Dockerfile:

FROM node:10

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["npm", "start"]

我的 docker-compose.yml

version: '3'
services:
  app:
    build: .
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    container_name: docker-node-mongo
    restart: always
    ports:
      - 3000:3000
      - 9229:9229
    command: npm start
    links:
      - mongo
      - redis
  mongo:
    container_name: mongo
    image: mongo
    ports:
      - "27017:27017"
  redis:
    image: redis:alpine
    volumes:
      - /var/redis/data:/data    

还有我的 package.json 脚本:

{
  "scripts": {
    "start": "nodemon --inspect=0.0.0.0 index.js"
  }
}

根据我工作的 docker 容器中的代码,我的代码正在更新,但我没有任何重新加载。

标签: node.jsdockerdocker-composenodemon

解决方案


重启时 nodemon 的问题inspect您可以在此处阅读有关该问题的更多信息。您可以尝试 nodemon 团队提到的解决方法

"inspect": "kill-port --port 9229 && node --inspect=0.0.0.0:9229 build/startup.js",
"start_watch_inspect": "nodemon --delay 80ms --watch build/ build/startup.js --exec 'npm run inspect'",

如果您可以在不检查的情况下进行管理,则可以使用以下命令使其工作

"scripts": {
    "start": "nodemon index.js"
  }

这将与安装目录一起使用 docker run --rm -v /home/myapp:/root --name test -it testnode

或者

将代码复制到容器内的 docker build 和更新文件也可以正常工作。

在此处输入图像描述


推荐阅读