我有一个用于node.js Web服务的Docker设置,该服务为如下所示的节点模块创建了数据量:

  volumes:
       - ./service:/usr/src/service
       - /usr/src/service/node_modules

具有数据量的解决方案可以正常工作。但是使用数据量,在主机(不是容器)的中无法访问或看不到node_modules,这会产生其他限制。例如:我无法在web-storm中运行测试,因为他们期望node_modules存在。

除了使用数据量安装节点模块以外,还可以使用主机上的其他替代解决方案吗?

docker 文件看起来像:
FROM node:6.3.1-slim

ARG NPM_TOKEN
ARG service
ENV NODE_ENV development

RUN apt-get update && apt-get -y install build-essential git-core python-dev vim

# use nodemon for development
RUN npm install --global nodemon

COPY .npmrc /root/.npmrc

RUN mkdir -p /usr/src/$service
RUN mkdir -p /modules/$service/
COPY sources/$service/package.json /modules/$service/package.json
RUN cd /modules/$service/ && npm install && rm -f /root/.npmrc && mv /modules/$service/node_modules /usr/src/$service/node_modules

WORKDIR /usr/src/$service
COPY sources/$service /usr/src/$service

ENV service=${service}

COPY start_services.sh /root/start_services.sh
COPY .env /root/.env
COPY services.sh /root/services.sh

RUN ["chmod", "+x", "/root/start_services.sh"]
RUN ["chmod", "+x", "/root/services.sh"]
CMD /root/start_services.sh

最佳答案

指定node_modules,如下所示:

volumes:
  - .:/usr/src/service/
  - /usr/src/service/node_modules

关于node.js - 访问Docker容器外部的 Node 模块的数据量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44947346/

10-11 22:16