Docker:Nodemon正在同步但未重新运行

jxct1oxe  于 2023-03-29  发布在  Docker
关注(0)|答案(1)|浏览(129)

我是Docker的新成员。
文件在使用bind mount进行更改时同步,但nodemon没有重新运行。要查看更改,我必须停止容器并使用docker compose up重新启动。

  • 我尝试了很多解决方案,但问题仍然存在 *

Dockerfile

FROM node:18-alpine3.17
WORKDIR /app
COPY package*.json /app
RUN npm ci
COPY . /app
EXPOSE 3000
# CMD [ "npm", "run", "dev" ]

docker-compose.yml

version: "3.9"

services:
  frontend:
    build:
      context: .
      dockerfile: Dockerfile
    command: npm run dev
    container_name: study-001-frontend-reactjs
    networks:
      - study-001
    ports:
      - 3000:3000
    volumes:
      - .:/app
      - /app/node_modules

networks:
  study-001:

package.json

{
    "name": "001-study",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "type": "module",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "dev": "nodemon index.js"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
        "express": "^4.18.2"
    },
    "devDependencies": {
        "nodemon": "^2.0.20"
    }
}

如果我在不使用Docker的情况下运行项目,一切都很好。
我错过了什么?

rqenqsqc

rqenqsqc1#

我怀疑nodemon没有正确安装在docker容器中。

  • 试试这个 *


docker-compose.yml:删除卷/app/nodemodules。

volumes:
  - .:/app

停靠文件:
尝试使用npm i而不是npm ci。

RUN npm install

将copy package*.json ./app更改为package*.json ./

COPY package*.json ./

您已经将工作目录声明为/app,因此请将copy . /app替换为copy .。

COPY . .

最后杀死容器,删除镜像并再次执行docker-compose up

相关问题