簡體   English   中英

如何避免Windows主機上的Docker中運行的npm出現符號鏈接問題?

[英]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作為要安裝到容器中的目錄:

  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

每當您希望避免已掛載目錄的子目錄中的更改反映在主機上時,這都是適用的,而不僅node_modules

為了避免NPM出現symlink錯誤,可以使用以下命令:

npm install --no-bin-links

但是,為了絕對避免symlink問題,您不應在已掛載目錄(從Window掛載)中設置nodejs項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM