这是我的 docker-compose.yml 文件
version: '3'
services:
redis-server:
image: "redis"
node-app:
build: .
ports:
- "5002:3000"
这是我的.Dockerfile
FROM node:21
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
CMD [ "npm" , "start"]
这是我的 package.json 文件
{
"dependencies": {
"express": "*" ,
"redis" : "2.8.0",
"nodemon": "^2.0.12"
},
"scripts": {
"start": "nodemon index.js"
}
}
我似乎无法让nodemon 与我的node-app 容器一起工作。
这是我的输出:
这是我在节点应用程序容器内的文件目录:
我不知道为什么当我在index.js文件中进行更改时它不热重载
请帮忙
谢谢你。
正如评论中提到的,您在 Docker 容器构建时复制了文件,但之后文件不会更改。
您需要安装文件夹。
从
COPY . .
中删除 Dockerfile
。
将以下内容添加到
docker-compose.yaml
:
version: '3'
services:
redis-server:
image: "redis"
node-app:
build: .
ports:
- "5002:3000"
volumes:
- ".:/app"
这样,主机上的文件将始终与容器上的文件相同。 (因为是挂载的,而不是一开始就复制)