node.js - 将 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 容器中的代码,我的代码正在更新,但我没有任何重新加载。
解决方案
重启时 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 和更新文件也可以正常工作。
推荐阅读
- javascript - 使用表通过 onClick 事件响应钩子、初始化和更改状态
- c# - 防止程序在启动时被 Windows 克隆
- c# - 循环遍历对象类并为每个值生成动态字段
- python - python - 如何使用python中的元组检查NoneType类中字符串的一部分?
- node.js - Node JS - 从 NODEJS 中的锚标记获取数据
- docker - 如何在 Jenkins 内的 docker 内运行节点测试
- shell - 禁用音频插孔 Raspberry Pi
- java - 地图定位。全球定位系统
- python - SVM - 检测恶意软件流量
- reactjs - 在异步 api 之后使用反应钩子中的 setter 函数调用设置带有对象数组的空数组时出现问题