前端 - 如何正確的使用 docker 來運行 webdev?
問題描述
后端的 php nginx 服務都跑在 docker 上
現在我想把前端的構建工具也跑在 docker 上,例如 node gulp 等等
應該怎么處理這個工作流,單獨新建一個容器嗎?如果有多個項目,應該如何操作?
問題解答
回答1:這個Case....一千個人眼中有一千個docker 環境。看你怎么組網,怎么配合應用了。
1,像我個人,習慣待docker如進程process, 那么我會竭力追求一個容器實例只掛起一個進程,因為個人認為如果n個應用都跑在一個容器里,那這個容器就不是進程級別,而是OS/機器級別了,那么建虛擬機鏡像好了,干嗎還要搞docker鏡像?。那即使是php和nginx這樣的配合,也會搞起兩個容器,可以把它看成一個應用,然后其它語言,像你用nodejs實現的其它應用,我肯定會再跑個容器實例,然后再跑個nginx反代這兩個。所以想問你的nginx+php的docker是一個容器嗎?2,也有混多個進程在一個docker里,畢竟它還是基于From [OS] 一個操作系統的嘛。可以在docker里跑起個supervisor(python)這樣的process monitor,將supervisor交給docker掛起,相同的應用不還有pm2(nodejs)?這樣的dockerfile不好寫反正。3, 混合,感覺最好的方式還是看具體的業務場景配合了,架構嘛,要用有限的資源配合去最大程度地完成業務。建議先去看看docker帶來的優點吧,以及為此優點需要付出的代價,才能更好地作出決策,不然亂用還不如不用。
回答2:當然是新拉一個node的容器下來跑了,所謂容器,不就是看重了輕量,低耦的好處嘛,為了實現松耦合,一般數據庫、和服務器都會分2個容器來跑,把端口映射做好,甚至一個個docker都可以看成是一個個nb的可以跑各種服務應用的進程,而并不會占用太多資源,這也是docker的意義所在,易移植,體積小,松耦合。
回答3:前端的話無非就是 node gulp webpack yarn sass 等
這里有現成的,web-dev-docker,我覺得你可以參考或者直接使用 。
相關文章:
1. angular.js - angular ng-class里面的引號問題2. javascript - 奇怪的Symbol的問題3. javascript - Web微信聊天輸入框解決方案4. docker - 如何修改運行中容器的配置5. javascript - 有沒有什么好的圖片懶加載的插件,需要包含監聽頁面滾動高度,然后再加載的功能6. javascript - history.replaceState()無法改變query參數7. html - vue項目中用到了elementUI問題8. matplotlib - python函數的問題9. mysql無法添加外鍵10. javascript - react 中綁定事件和阻止事件冒泡
