使用 Volumes 概念自动呈现代码中所做的更改(Docker VM 中的节点应用程序 运行)

Automatic rendering of changes made in code using Volumes concept (node app running in Docker VM)

现在在 .Jade 文件中所做的更改会在网络上自动呈现 UI,但是在 node.js 文件中所做的代码更改不会呈现,到目前为止,这是我的 docker-compose.yml 文件

 www:
 build: .
 volumes: 
  - ./:/app_ww
 ports:
  - "80:3000"
 expose: 
  - "80" 

这是我的 docker 文件

FROM node:4.4.1

RUN mkdir -p app_ww

WORKDIR /app_ww

ADD package.json package.json

RUN npm install

ADD . .

CMD ["npm","start"]

我没有完成要求的工作。 IE, 自动呈现代码中所做的更改。因此,这是通过 $docker-compose up --build 构建存储库在系统中创建的卷列表:

$ docker volume ls

DRIVER VOLUME NAME
local  app_ww 

Package.JsOn 文件:

{
  "name": "node_restapi",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "jade": "~1.11.0",
    "morgan": "~1.6.1",
    "less-middleware": "~2.1.0",
    "serve-favicon": "~2.3.0"
  }
}

注意:容器 运行 很好,但卷的概念不起作用, 问题:在上面的主题中提到。

如果您使用的是 docker 机器,我想该卷是从您创建的 "machine" 而不是本机文件系统装载的。您必须跳过几个步骤才能将本机 fs 目录安装到 docker-machine 实例。 OS 你在看什么?这似乎在此处记录为间歇性问题:https://github.com/docker/compose/issues/2247

我找到了解决我所面临问题的方法。 在这里,

npm install -g nodemon

在带有 -g(全局)标志的 docker 文件中包含 nodemon,非常适合我。 谢谢@JHarris,@Aditya,@ShanShan

此致, 穆罕默德·阿布贝克