我在Windows 10上使用最新的Docker公共testing版 。
我正在开发一个Node.js应用程序,我正在使用Docker与我的src目录作为一个卷装入一个容器中。
我不能从容器内运行npm install
,因为它会导致创build符号链接(在node_modules目录中),如果主机是Windows,显然在卷中不支持。
有什么我可以做的解决这个问题?
我在Linux环境下运行这个没有问题。
经过一番研究,我发现了很多涉及Virtualbox的解决scheme,都是针对“旧版”Docker(Docker Toolbox)的。
为了避免与NPM的symlink
错误,您可以使用命令:
npm install --no-bin-links
但是,要绝对避免symlink
问题,不要将您的nodejs项目设置为挂载目录(从Window挂载)
我以下面的方式解决。
在这个例子中,我将使用/usr/src
作为要在容器中安装的目录:
/usr/src
上挂载应用程序的src目录: -vc:/path/to/src:/usr/src
node_modules
定义数据卷: -v /usr/src/node_modules
这样你就可以将c:/path/to/src
挂载到/usr/src
而/usr/src/node_modules
将挂载一个数据卷。
最终的结果是,即使在主机上创建了一个node_modules
目录,它仍然是空的。
该解决方案利用Docker数据卷 。
这适用于每次要避免主机上报告的挂载目录的子目录中发生的更改,而不仅仅是针对node_modules
。