前端 - 如何正確的使用 docker 來運(yùn)行 webdev?
問題描述
后端的 php nginx 服務(wù)都跑在 docker 上
現(xiàn)在我想把前端的構(gòu)建工具也跑在 docker 上,例如 node gulp 等等
應(yīng)該怎么處理這個(gè)工作流,單獨(dú)新建一個(gè)容器嗎?如果有多個(gè)項(xiàng)目,應(yīng)該如何操作?
問題解答
回答1:這個(gè)Case....一千個(gè)人眼中有一千個(gè)docker 環(huán)境。看你怎么組網(wǎng),怎么配合應(yīng)用了。
1,像我個(gè)人,習(xí)慣待docker如進(jìn)程process, 那么我會(huì)竭力追求一個(gè)容器實(shí)例只掛起一個(gè)進(jìn)程,因?yàn)閭€(gè)人認(rèn)為如果n個(gè)應(yīng)用都跑在一個(gè)容器里,那這個(gè)容器就不是進(jìn)程級(jí)別,而是OS/機(jī)器級(jí)別了,那么建虛擬機(jī)鏡像好了,干嗎還要搞docker鏡像?。那即使是php和nginx這樣的配合,也會(huì)搞起兩個(gè)容器,可以把它看成一個(gè)應(yīng)用,然后其它語言,像你用nodejs實(shí)現(xiàn)的其它應(yīng)用,我肯定會(huì)再跑個(gè)容器實(shí)例,然后再跑個(gè)nginx反代這兩個(gè)。所以想問你的nginx+php的docker是一個(gè)容器嗎?2,也有混多個(gè)進(jìn)程在一個(gè)docker里,畢竟它還是基于From [OS] 一個(gè)操作系統(tǒng)的嘛??梢栽赿ocker里跑起個(gè)supervisor(python)這樣的process monitor,將supervisor交給docker掛起,相同的應(yīng)用不還有pm2(nodejs)?這樣的dockerfile不好寫反正。3, 混合,感覺最好的方式還是看具體的業(yè)務(wù)場景配合了,架構(gòu)嘛,要用有限的資源配合去最大程度地完成業(yè)務(wù)。建議先去看看docker帶來的優(yōu)點(diǎn)吧,以及為此優(yōu)點(diǎn)需要付出的代價(jià),才能更好地作出決策,不然亂用還不如不用。
回答2:當(dāng)然是新拉一個(gè)node的容器下來跑了,所謂容器,不就是看重了輕量,低耦的好處嘛,為了實(shí)現(xiàn)松耦合,一般數(shù)據(jù)庫、和服務(wù)器都會(huì)分2個(gè)容器來跑,把端口映射做好,甚至一個(gè)個(gè)docker都可以看成是一個(gè)個(gè)nb的可以跑各種服務(wù)應(yīng)用的進(jìn)程,而并不會(huì)占用太多資源,這也是docker的意義所在,易移植,體積小,松耦合。
回答3:前端的話無非就是 node gulp webpack yarn sass 等
這里有現(xiàn)成的,web-dev-docker,我覺得你可以參考或者直接使用 。
相關(guān)文章:
1. javascript - immutable配合react提升性能?2. javascript - sublime快鍵鍵問題3. phpstudy8.1支持win11系統(tǒng)嗎?4. 配置Apache時(shí),添加對PHP的支持時(shí)語法錯(cuò)誤5. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽數(shù)據(jù)變化6. css - 寫頁面遇到個(gè)布局問題,求大佬們幫解答,在線等,急!~7. 實(shí)現(xiàn)bing搜索工具urlAPI提交8. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問9. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問?10. javascript - 移動(dòng)端上不能實(shí)現(xiàn)拖拽布局嗎?

網(wǎng)公網(wǎng)安備