微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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就是它们的安装位置.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐