我有一個nodejs項目引用了我編寫並由私人github回購託管的模塊。在的package.json依賴是這個樣子:Nodejs私有模塊和Docker容器
"dependencies": {
... other stuff ...
"my_module": "git+https://github.com/me/mymodule.git",
}
這很好,但我想爲應用程序創建一個泊塢容器,但我不想在容器內的git。我知道我可以通過私有的npm repos託管,但我很想找到一種方法讓構建過程將源代碼(包括該模塊)拉出來,然後將其複製到容器中。
我很好,在容器中做一個npm安裝,但它不會喜歡git依賴。或者,我不想在生成機器上執行npm install,因爲我想要自由選擇任何我想要的容器......我不希望生成機器將windows二進制文件拖到mongo模塊,例如,並將其複製到我的debian容器中。
我考慮過的一個選擇是在devDependencies中放置依賴項「my_module」,然後在Docker容器中執行「npm install --production」,然後複製一個模塊。這只是與devDependencies的意圖不一致。
任何更好/推薦的解決方案?如果有更好的方法,我可以不用在github中託管這個模塊(但是我在一些只對這個客戶端有意義的項目上使用它)。
這就是我正在建議的。您可以在容器外部構建項目,而不是將它放在那裏。雖然它對你用來構建這些容器的主機適用了一些要求(如擁有git和npm) –
對,它存在於某個地方。如果不在碼頭集裝箱中,則比在建造集裝箱的系統中。如果你從家裏部署,或者你的jenkins /竹子/雲中的任何服務器,這可能只是你的本地計算機。 :) –
是的,但請記住,如果您從構建服務器執行npm install,則可以爲* that * os製作二進制文件。例如,如果它是windows,那麼它可能會在win32上編譯C庫,然後你將它們複製到一個linux容器中,它不起作用,對吧?我們在這裏做的假設是,所有的操作系統都是相同的,而他們不是。 – angelok