当前位置 : 主页 > 网页制作 > Nodejs >

Node.js Docker Compose:node_modules消失

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在尝试使用Docker Compose在我的开发环境中汇集一些Node.js应用程序.但是,我遇到了一个问题,即node_modules. 这是发生了什么: npm install作为Dockerfile的一部分运行. 我的本地目录中没有n
我正在尝试使用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就是它们的安装位置.
网友评论