在本地开发NodeJS应用程序,在Docker容器中运行,没有重新加载,批量问题

时间:2018-10-20 11:02:43

标签: node.js docker

计划:

  1. 在主机Windows 10上本地开发了我的代码
  2. 将带有该代码的卷装入容器
  3. 通过nodemon在容器中运行节点,该节点将重新加载自身,并在主机上更新我的代码
  4. 在映像构建阶段安装了我的node_modules,并在容器运行阶段将其复制到app文件夹中

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复制到容器中,这对开发速度不利。

感谢任何帮助。

0 个答案:

没有答案