[英]How can avoid symlink problems with npm running in Docker on a Windows host?
我正在Windows 10上使用最新的Docker公共beta 。
我正在开发Node.js应用程序,并且正在使用Docker,并将src目录作为卷安装在容器中。
我无法从容器内部运行npm install
,因为它将导致创建符号链接(在node_modules目录中),如果主机是Windows,则显然在卷中不支持该符号链接。
有什么我可以解决的问题吗?
我在Linux环境中运行它没有任何问题。
经过一番研究,我发现许多涉及Virtualbox的解决方案,都用于Docker的“旧”版本(Docker Toolbox)。
我以以下方式解决了。
在此示例中,我将使用/usr/src
作为要安装到容器中的目录:
/usr/src
: -v /path/to/src:/usr/src
node_modules
的数据量: -v /usr/src/node_modules
这样,您就可以将/path/to/src
挂载到/usr/src
并将/usr/src/node_modules
挂载为数据卷。
最终结果是,即使在主机上创建了一个node_modules
目录,它也将保持为空。
该解决方案利用了Docker Data Volumes 。
每当您希望避免已挂载目录的子目录中的更改反映在主机上时,这都是适用的,而不仅node_modules
。
为了避免NPM出现symlink
错误,可以使用以下命令:
npm install --no-bin-links
但是,为了绝对避免symlink
问题,您不应在已挂载目录(从Window挂载)中设置nodejs项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.