我有一個dockerized項目,有三個應用程序和三個數據庫。這三個應用程序都是用節點編寫的,並像往常一樣使用npm
。npm安裝一個docker-compose項目
我有一個克隆三個回購的腳本,docker-compose.yaml
安裝三個容器,並使用Dockerfile
三個項目中的每一個基本上只是做一個npm install
並運行它們。
這一切都工作正常,但此練習的重點是使項目的羣集易於設置和運行的目的進行開發。實際上在項目代碼上工作並不是問題,因爲它被開發人員克隆,但npm install
是通過docker和root來完成的。這意味着回購中的node_modules
由root擁有。
開發人員不能簡單地做npm install
到一個新的包添加到回購,因爲他們不會對node_modules
權限和模塊時還可能取決於他們的主機系統上的不同建築風格建造。
我曾想過創建運行在容器而不是npm install
的腳本,但是這有幾個需要注意的地方:
root
將擁有package.json
- 這打破了一個典型的節點開發的流...它們被用來只是做
npm install
就像我上面說的,這個整點是使其容易在跳躍和發展越好,所以我希望得到儘可能盡我所能接近一個共同的發展經驗。
對於在Docker容器中處理節點模塊安裝以開發項目是否有任何建議?
你的回答很有意義,但只是一些跟進。 1000'會成爲我想每次都使用的UID嗎?你能否再詳細說一下你的最後一段。你指的是什麼版本的不匹配頭痛?他們也會在主機上編輯和使用代碼,而不是在容器中(儘管只要我能夠記錄如何通過容器來執行'npm install') –
'1000'在這種情況下只是一個提供了默認值,否則'--build-arg HOST_UID ='成爲開始構建的需求。通過版本不匹配,我引用了開發主機和容器內的工具。使用主機的IDE很好。 –