上面是一個(gè)標(biāo)準(zhǔn)PHP項(xiàng)目在Docker環(huán)境下的演進(jìn)過(guò)程,實(shí)際項(xiàng)目中一般會(huì)集成更多更復(fù)雜的服務(wù),但上述基本步驟仍然可以通用。比如EvaEngine/Dockerfiles 是為了運(yùn)行我的開(kāi)源項(xiàng)目EvaEngine 準(zhǔn)備的基于Docker的開(kāi)發(fā)環(huán)境,EvaEngine依賴了隊(duì)列服務(wù)Gearman,緩存服務(wù)Memcache、Redis,前端構(gòu)建工具Gulp、Bower,后端Cli工具Composer、PHPUnit等。具體實(shí)現(xiàn)方式可以自行閱讀代碼。
經(jīng)過(guò)團(tuán)隊(duì)實(shí)踐,原本大概需要1天時(shí)間的環(huán)境安裝,切換到Docker后只需要運(yùn)行10余條指令,時(shí)間也大幅縮短到3小時(shí)以內(nèi)(大部分時(shí)間是在等待下載),最重要的是Docker所構(gòu)建的環(huán)境都是100%一致的,不會(huì)有人為失誤引起的問(wèn)題。未來(lái)我們會(huì)進(jìn)一步將Docker應(yīng)用到CI以及生產(chǎn)環(huán)境中。
更多建議: