如何避免在Windows主机上的Docker中运行npm的符号链接问题?

Mar*_*ari 5 windows symlink node.js npm docker

我在Windows 10上使用最新的Docker公共测试版.

我正在开发一个Node.js应用程序,我使用Docker将我的src目录作为卷安装在容器中.

我无法npm install从容器内部运行,因为它将导致创建符号链接(在node_modules目录中),如果主机是Windows,则显然在卷中不支持.

有什么办法可以解决这个问题吗?

我在Linux环境中运行它没有任何问题.

经过一些研究,我发现许多涉及Virtualbox的解决方案,用于Docker(Docker Toolbox)的"旧"版本.

Mar*_*ari 6

我用以下方式解决了.

/usr/src在这个例子中,我将用作容器中挂载的目录:

  1. 将应用程序的src目录挂载到/usr/src:-v /path/to/src:/usr/src
  2. 为以下内容定义数据卷node_modules:-v /usr/src/node_modules

通过这种方式,您将/path/to/src安装/usr/src并将/usr/src/node_modules作为数据卷安装.

最终结果是,即使node_modules在主机上创建了目录,它也将保持为空.

此解决方案利用Docker Data Volumes.

每次要避免挂载目录的子目录中的更改在主机上反映时,这都适用,而不仅仅是for node_modules.