來(lái)源臥龍閣的專欄 PHP與創(chuàng)業(yè)的那些事兒
環(huán)境部署是所有團(tuán)隊(duì)都必須面對(duì)的問(wèn)題隨著系統(tǒng)越來(lái)越大依賴的服務(wù)也越來(lái)越多比如我們目前的一個(gè)項(xiàng)目就會(huì)用到
因此團(tuán)隊(duì)的開(kāi)發(fā)環(huán)境部署隨之暴露出若干問(wèn)題
1. 依賴服務(wù)很多本地搭建一套環(huán)境成本越來(lái)越高初級(jí)人員很難解決環(huán)境部署中的一些問(wèn)題
2. 服務(wù)的版本差異及OS的差異都可能導(dǎo)致線上環(huán)境BUG
3. 項(xiàng)目引入新的服務(wù)時(shí)所有人的環(huán)境需要重新配置
對(duì)于問(wèn)題1可以用Vagrant這樣的基于虛擬機(jī)的項(xiàng)目來(lái)解決團(tuán)隊(duì)成員共享一套開(kāi)發(fā)環(huán)境鏡像。對(duì)于問(wèn)題2可以引入類似PHPBrew這樣的多版本PHP管理工具來(lái)解決。但兩者都不能很好地解決問(wèn)題3因?yàn)樘摂M機(jī)鏡像沒(méi)有版本管理的概念當(dāng)多人維護(hù)一個(gè)鏡像時(shí)很容易出現(xiàn)配置遺漏或者沖突一個(gè)很大的鏡像傳輸起來(lái)也不方便。
Docker的出現(xiàn)讓上面的問(wèn)題有了更好的解決方案雖然個(gè)人對(duì)于Docker大規(guī)模應(yīng)用到生產(chǎn)環(huán)境還持謹(jǐn)慎態(tài)度但如果僅僅考慮測(cè)試及開(kāi)發(fā)私以為Docker的容器化理念已經(jīng)是能真正解決環(huán)境部署問(wèn)題的銀彈了。
下面介紹Docker構(gòu)建PHP項(xiàng)目開(kāi)發(fā)環(huán)境過(guò)程中的演進(jìn)本文中假設(shè)你的操作系統(tǒng)為L(zhǎng)inux已經(jīng)安裝了Docker并且已經(jīng)了解Docker是什么以及Docker命令行的基礎(chǔ)使用如果沒(méi)有這些背景知識(shí)建議先自行了解。
更多建議: