用DOCKER在本機建立MAGENTO (概念篇)

很久以前我開始出來工作,如果要寫網頁,總會裝上WAMP,XAMP,MAMP等工具,因為很方便,大多是一裝好後,便把MYSQL + APACHE + PHP 一口氣裝好,然後便可以開始在本機寫網站,半小時就可以開工。

現在出來工作除了要定期學習外,也要開始多質疑自己一下,到底有沒有更快的方法或更方便的方法去完成事情,畢竟經驗歸經驗,好多時經驗也會蒙蔽自己。雖然現在才開始出來學DOCKER真的有點OUT,就當是改變一下自己的學習模式做準備吧。

DOCKER是甚麼來的啦?雖然官方有很多文件解釋,但是因為我的英文不太好,盡量理解的話會是

CONTAINER是由IMAGE映象檔建立起來,而IMAGE則是可以由DOCKER去寫好一份文檔 DOCKERFILE,再用BUILD COMMAND去建立一個IMAGE映象檔,坊間已經有很多人把自己寫好的IMAGE放到網上去,而且是免費的,可以到https://hub.docker.com/ 去下載,而每個IMAGE都可以用docker-compose 的方法下不同設定,要留意的是因為IMAGE有不同版本,在設定上也會有不同,例如 Magento PHP FPM 8.1fpm1.3.5 send email的 設定是SENDMAIL_PATH=/dev/null 如果是 7.2fpm1.2.0 , 會是ENABLE_SENDMAIL=true。而DOCKER的工作是整合了一系列的CONTAINER作成一個多元服務,前題是用家要先理解自己要甚麼服務,如果好像我第一段文表達的話,就是

  1. PHP用來跑PHP語法的PROJECT
  2. MYSQL 或 MARIA DB用來存放資料
  3. NGINX或APACHE 用來運行WEB服務,把PHP寫出來的內容能在BROWSER澄現出來

這樣就可以歸納出,我要在hub.docker.com 找一下這三個服務,然後把服務經DOCKER下載成CONTAINER,然後開始運行。

好處呢?

  1. 比MAMP,WAMP等軟件,靈活度會比較高,那些軟件要定期UPDATE,但要測試不同的PHP版本呀,NGINX版本呀或MYSQL的版本 就會出現問題,在DOCKER中,你想要加多一個SERVICE就寫多一個SERVICE的設定,要改版本就在DOCKER HUB找一下那個版本的IMAGE名稱,再在DOCKER文件隨時更改一下就可以了
  2. 多平台都可以支援,一份DOCKER COMPOSE文件可以在LINUX,MAC,WINDOW 跑就可以了
  3. 不要的IMAGE可以隨時掉,要安裝也很方便
  4. 很多工作都會需要DOCKER技術,例如CICD等,是一樣值得學習的知識

壞處呢?

  1. 如果是用慣罐頭工具,e.g. WAMP等,一開始絕對是黑人問號,因為用家本來不太理解NGINX/APACHE,PHP,MYSQL等原來的運作,例如NGINX要如何設定,PHP FPM如何連上NGINX 或APACHE等,因為我剛剛也提到了,每個服務都是獨立的,要連在一起是需要設定,而WAMP等是已把這部份設定好,省略了這部份的學習
  2. 有時會因為裝得太多IMAGE而遺下很多忘記了要清的資源。

在概念的部份就說到這裡,下一部份將會是解說一下軟件安裝