Docker-Compose + Volume + NodeJs-保存后未反映更改

时间:2020-10-02 11:38:53

标签: node.js docker docker-compose

目录结构

projectroot/
    docker-compose.yml
    frontend/
        Dockerfile
        src/
            node_modules
            package.json
            ....

projectroot / frontend / docker-compose.yml

services:
  frontend:
    build: ./frontend
    ports:
      - 3000:3000
    volumes:
      - ./frontend/src:/app/

Dockerfile

FROM node:12.18.3

COPY /src/package.json .

RUN npm install --save-dev

COPY /src .

EXPOSE 3000

CMD ["npm", "run", "dev"]

以上工作。我可以运行docker-compose up,并在localhost:3000上渲染我的应用。

但是,当我对projectroot / frontend / pages / index.js进行更改时,该更改不会得到体现。

我很困惑,因为我将/ src的内容复制到了Dockerfile(COPY /src .)中的/ app中。如果运行容器并进行猛击,则会看到包含主机/app文件夹内容的/src文件夹。

如果我从COPY中删除了Dockerfile命令,则读数只会循环以下内容:

$ docker-compose up
Recreating pricey_frontend_1 ... done
Attaching to pricey_frontend_1
frontend_1  |
frontend_1  | > src@1.0.0 dev /
frontend_1  | > cross-env NODE_ENV=development nodemon server.js
frontend_1  |
frontend_1  | [nodemon] 2.0.4
frontend_1  | [nodemon] to restart at any time, enter `rs`
frontend_1  | [nodemon] watching path(s): *.*
frontend_1  | [nodemon] watching extensions: js,mjs,json
frontend_1  | [nodemon] starting `npm run dev server.js`
frontend_1  |
frontend_1  | > src@1.0.0 dev /
frontend_1  | > cross-env NODE_ENV=development nodemon server.js "server.js"
*** loops until I kill it***

在我看来,删除COPY很有意义,因为我想使用主机卷src(这样我就可以对其进行更新,并且更改会立即反映在localhost:3000上。我缺少什么?

0 个答案:

没有答案