簡體   English   中英

Nodejs私有模塊和Docker容器

[英]Nodejs private module and Docker containers

我有一個nodejs項目,它引用了我私有github repo編寫和托管的模塊。 package.json中的依賴關系如下所示:

"dependencies": {
    ... other stuff ...
    "my_module": "git+https://github.com/me/mymodule.git",
}

這很好,但我想為應用程序創建一個Docker容器,但我不想在容器中使用git。 我知道我可以通過私人npm repos托管,但我很想找到一種方法讓構建過程拉動源(包括該模塊),然后將其復制到容器中。

我在容器中進行npm安裝很好,但它不喜歡git依賴。 或者,我不想在構建機器上進行npm安裝,因為我希望自由選擇我想要的任何容器......我不希望構建機器將Windows二進制文件鎖定到mongo模塊,例如,並將這些復制到我的debian容器中。

我考慮的一個選項是將依賴項放在devDependencies中的“my_module”中,然后在Docker容器中執行“npm install --production”,然后復制一個模塊。 這與devDependencies的意圖不一致。

有更好/推薦的解決方案? 我願意不在github中托管模塊,如果有更好的方法(但我在一些只對這個客戶有意義的項目中使用它)。

這是一個非常簡單的解決方案。 構建節點應用程序

npm install

然后在您的dockerfile中包含COPY命令,告訴它節點項目安裝目錄的位置,以及它要復制到的位置。

編輯:

為了解決@angelok提出的問題,一旦將其復制到docker鏡像中,就應該使用npm rebuild,以便使用相對於Docker鏡像的操作系統而不是最初安裝節點包的操作系統的正確依賴關系進行構建。 請參閱此處的重建文檔。

暫無
暫無

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

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