【发布时间】:2021-03-29 11:38:00
【问题描述】:
我正在尝试在 Docker 容器中设置 Nodemon。它说 nodemon 正在运行,但是当我更改 index.js 文件中的代码时,它不会像在 docker 之外那样重新加载。我尝试将 -L 添加到命令中,但没有运气。我也尝试在 docker 文件中安装 nodemon,但没有成功。
每当我更改我的 index.js 文件时,我都必须执行 docker-compose up --build。
有什么想法吗?
这是我的文件结构:
-api
-node_modules
-.dockerignore
-Dockerfile
-index.js
-package.json
-package-lock.json
-docker-compose.yml
docker-compose.yml:
version: '3.4'
services:
api:
build:
context: ./api
container_name: api
environment:
- PORT=3001
volumes:
- ./api/src:/usr/app/src
ports:
- '3001:3001'
command: npm run dev
Dockerfile:
FROM node:14.15.2-alpine3.12
WORKDIR /usr/app
COPY package*.json ./
RUN npm install
COPY . .
package.json:
{
"name": "api",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"express": "^4.17.1"
},
"scripts": {
"dev": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^2.0.6"
}
}
【问题讨论】:
-
您是在 Docker 容器内编辑 index.js 吗?
-
没关系,我现在看到你的卷挂载了。尝试将 CMD 更改为
command: nodemon index.js -
@noisewaterphd 当我将“command: npm run dev”更改为--->“command: npm run dev”时,我收到此错误:错误:找不到模块'/usr/app/nodemon'
-
尝试在单独的 RUN 指令中全局安装 nodemon
RUN npm install -g nodemon -
你能在主机上使用 Node 和 Nodemon,在 Docker 之外吗?这可能比尝试配置像 Docker 这样的隔离环境要简单得多。可能还看到Nodemon Doesn't Restart in Windows Docker Environment