我有一个用于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/