将nodemon与docker和docker-compose一起使用 [英] Use nodemon with docker and docker-compose

查看:323
本文介绍了将nodemon与docker和docker-compose一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将nodemon与docker-compose结合使用。
这是我的Dockerfile:

  FROM节点:10 

WORKDIR / usr / src / app

COPY包* .json ./

运行npm install

COPY。 。

CMD [ npm,开始]

我的docker-compose.yml

 版本:'3'
服务:
应用程序:
构建:。
卷:
-。:/ usr / src / app
-/ usr / src / app / node_modules
container_name:docker-node-mongo
重新启动:始终
端口:
-3000:3000
-9229:9229
命令:npm start
链接:
-mongo
-redis
mongo:
container_name:mongo
图片:mongo
端口:
- 27017:27017
redis:
图片:redis:alpine
卷:
-/ var / redis / data:/ data

package.json脚本:

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

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

解决方案

重新启动时具有检查的nodemon的问题。您可以在


I'm using nodemon with docker-compose. Here is my Dockerfile:

FROM node:10

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["npm", "start"]

My 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    

And my package.json script:

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

According to the code inside of my working docker container, my code is updating, but I don't have any reload.

解决方案

The issue with nodemon with inspect on restart. You can read more about the issue here. You can try the work around mentioned by nodemon team

"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'",

You can make it working using below command if you can manage without inspect

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

This will work with mounting the directory docker run --rm -v /home/myapp:/root --name test -it testnode

OR

copy code to docker build and update file inside the container will also work fine.

这篇关于将nodemon与docker和docker-compose一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆