[英]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.