如何使用 docker-compose 运行nodemon

问题描述 投票:0回答:1

这是我的 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文件中进行更改时它不热重载

请帮忙

谢谢你。

node.js docker nodemon
1个回答
0
投票

正如评论中提到的,您在 Docker 容器构建时复制了文件,但之后文件不会更改。

您需要安装文件夹

COPY . .
中删除
Dockerfile

将以下内容添加到

docker-compose.yaml

version: '3'
services:
  redis-server:
    image: "redis"
  node-app:
    build: .
    ports:
      - "5002:3000"
    volumes:
      - ".:/app"

这样,主机上的文件将始终与容器上的文件相同。 (因为是挂载的,而不是一开始就复制)

© www.soinside.com 2019 - 2024. All rights reserved.