我正在使用NodeJS和Nodemon在Docker上工作。当我尝试直接在docker compose文件中使用nodemon命令运行我的NodeJS应用程序时,它会正常运行。
像这样(可行):[docker-compose]
command: nodemon source/index.js
但是当我使用 package.json 中的脚本时,它不起作用。
就像这样(不起作用):[docker-compose]
command: npm run dev
我的 package.json 文件在哪里
"scripts": {
"start": "node source/index.js",
"dev": "nodemon source/index.js"
}
我尝试了不同的方法,当我运行启动脚本时没有使用nodemon,它可以正常工作
就像这样(正常工作):[docker-compose]
command: npm run start
但是,当我尝试在其中使用 nodemon 命令时,再次使用 dev ,它无法工作。容器不会启动。我还尝试了以下方法,它也可以正常工作:
像这样(可运行):[docker-compose]
command: nodemon --exec npm start
我仍然不明白,为什么在脚本dev中执行nodemon命令没有生效。
我正在使用Swarm模式的Docker。
这是我的两个文件:
docker-compose
version: '3.7'
services:
node-service:
image: node-img:1.0
ports:
- 4000:4000
working_dir: "/node-dir"
volumes:
- ./node-dir/source:/node-dir/source
networks:
- ness-net
command: npm run dev
networks:
ness-net:
package.json
{
"name": "node-pkg",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node source/index.js",
"dev": "nodemon source/index.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^1.19.4"
}
}