我有一个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
答案 0 :(得分:0)
指定node_modules,如下所示:
volumes:
- .:/usr/src/service/
- /usr/src/service/node_modules