Node.js Docker Compose:node_modules消失

我正在尝试使用Docker Compose在我的开发环境中汇集一些Node.js应用程序.但是,我遇到了一个问题,即node_modules.

这是发生了什么:

> npm install作为Dockerfile的一部分运行.
>我的本地目录中没有node_modules. (我不应该因为依赖项的安装应该在容器中进行,对吧?这似乎打败了目的,因为我需要在本地安装Node.js.)
>在docker-compose.yml中,我正在设置一个包含源代码的卷.
> docker-compose build运行良好.
>当我使用docker-compose时,node_modules目录在容器中消失了 – 我假设因为卷已挂载且我的本地目录中没有它.

我如何确保node_modules坚持?

Dockerfile

FROM       node:0.10.37

copY       package.json /src/package.json

workdir    /src

RUN        npm install -g grunt-cli && npm install

copY       . /src

EXPOSE     9001

CMD        ["npm","start"]

泊坞窗,compose.yml

api:
  build: .
  command: grunt
  links:
    - elasticsearch
  ports:
    - "9002:9002"
  volumes:
    - .:/src

elasticsearch:
  image: elasticsearch:1.5

解决方法

由于 the way Node.js loads modules,只需将node_modules放在源代码路径中更高的位置即可.例如,将源代码放在/ app / src,将package.json放在/ app中,这样/ app / node_modules就是它们的安装位置.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...