计划:
TL; DR
问题是,当我在映像构建阶段安装NPM时,然后使用具有与WORKDIR相同的卷路径的自定义映像运行容器-它清除了在映像期间安装的package.json和node_modules构建,因为显然它将容器的内容替换为主机的mount文件夹。
主机文件夹结构:
C:\Project\Dockerfile
C:\Project\src\ - code here
Dockerfile:
FROM node:8
WORKDIR /app
COPY src/package.json /tmp
RUN cd /tmp && npm install
RUN mkdir -p /app && cp -R /tmp/node_modules /app/
EXPOSE 8080
CMD ["npm", "start"]
到目前为止一切都很好。现在,我需要做的是在docker运行期间添加一个卷,并“组合” / app的现有内容以及将在我的主机上的内容。
该怎么做?
将失败:
docker run -p 8080:3000 -v C:\Project\src:/app -d deb0rian/host
maker_test
并且无法将node_modules重新放置到另一个文件夹中,也无法将我的src挂载到/ app / src中,因为node_modules现在将降低一个级别,并且例如将不会被require函数发现。
在Internet上找不到解决方案,每个人似乎都将src复制到容器中,这对开发速度不利。
感谢任何帮助。