docker 构建映像后未安装 Nodemon
Nodemon not installed after docker build image
我有一个节点应用程序的图像。在 package.json 我有 nodemon。我想 运行 容器更新主机源,其中 nodemon
将热重新加载主机 src 的变化。所以我正在使用绑定安装。
package.json
来自节点应用程序。
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon app.js"
},
"author": "MOI",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"mongoose": "^5.10.3",
"morgan": "^1.10.0"
},
"devDependencies": {
"nodemon": "^2.0.4"
}
}
Dockerfile
FROM node
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 80
CMD ["npm", "start"]
然后我运行这个容器,当我检查日志时,我看不到nodemon
正在运行。几乎就像它根本没有安装一样。有什么解决方法吗?
docker run --name goals-backend -v /Users/path/for/bind/mount/backend:/app \
-v logs:/app/logs -v /app/node_modules -d --rm \
-p 80:80 --network goals-net goals-node
您在 /app 'hides' 上绑定图像中 '/app' 中的所有内容,并将其替换为主机上 /Users/path/for/bind/mount/backend 的内容。
与 /app/node_modules 上的卷相同,但由于这是一个卷而不是绑定安装,/app/node_modules 的内容将在首次创建卷时复制到该卷。
运行 它没有体积映射以确保图像按原样工作
docker run --name goals-backend -d --rm -p 80:80 --network goals-net goals-node
我有一个节点应用程序的图像。在 package.json 我有 nodemon。我想 运行 容器更新主机源,其中 nodemon
将热重新加载主机 src 的变化。所以我正在使用绑定安装。
package.json
来自节点应用程序。
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon app.js"
},
"author": "MOI",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"mongoose": "^5.10.3",
"morgan": "^1.10.0"
},
"devDependencies": {
"nodemon": "^2.0.4"
}
}
Dockerfile
FROM node
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 80
CMD ["npm", "start"]
然后我运行这个容器,当我检查日志时,我看不到nodemon
正在运行。几乎就像它根本没有安装一样。有什么解决方法吗?
docker run --name goals-backend -v /Users/path/for/bind/mount/backend:/app \
-v logs:/app/logs -v /app/node_modules -d --rm \
-p 80:80 --network goals-net goals-node
您在 /app 'hides' 上绑定图像中 '/app' 中的所有内容,并将其替换为主机上 /Users/path/for/bind/mount/backend 的内容。 与 /app/node_modules 上的卷相同,但由于这是一个卷而不是绑定安装,/app/node_modules 的内容将在首次创建卷时复制到该卷。
运行 它没有体积映射以确保图像按原样工作
docker run --name goals-backend -d --rm -p 80:80 --network goals-net goals-node