将 nodemon 与 docker 和 docker-compose 一起使用
Use nodemon with docker and docker-compose
我正在使用带有 docker-compose 的 nodemon。
这是我的 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 容器中的代码,我的代码正在更新,但我没有任何重新加载。
重新启动时 inspect
的 nodemon 问题。您可以阅读有关此问题的更多信息 here。您可以尝试 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 在容器内构建和更新文件也可以正常工作。
如果您使用 -L
或 --legacy-watch
标志启动 nodemon,它会在检测到更改时正确重新启动。 package.json
文件中的脚本为:
{
"scripts": {
"start": "nodemon -L --inspect=0.0.0.0 index.js"
}
}
我在评论这个要点时遇到了这个解决方案:
https://gist.github.com/ksmithut/e126f7ddb40b760487a17e8b569a77b5#gistcomment-2725750
这可以在 https://github.com/remy/nodemon#application-isnt-restarting
的官方文档中找到
我正在使用带有 docker-compose 的 nodemon。 这是我的 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 容器中的代码,我的代码正在更新,但我没有任何重新加载。
重新启动时 inspect
的 nodemon 问题。您可以阅读有关此问题的更多信息 here。您可以尝试 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 在容器内构建和更新文件也可以正常工作。
如果您使用 -L
或 --legacy-watch
标志启动 nodemon,它会在检测到更改时正确重新启动。 package.json
文件中的脚本为:
{
"scripts": {
"start": "nodemon -L --inspect=0.0.0.0 index.js"
}
}
我在评论这个要点时遇到了这个解决方案: https://gist.github.com/ksmithut/e126f7ddb40b760487a17e8b569a77b5#gistcomment-2725750
这可以在 https://github.com/remy/nodemon#application-isnt-restarting
的官方文档中找到