2017/07/29

Laradock 介紹與安裝


今年參加了在台北舉辦的Laravel Conf 2017
聽到apple boy有提到laradock這個關鍵字

laradock是一個用docker container組合運行Laravel的環境
相較於homestead, docker在效能上好很多

這篇文章主要介紹Laradock怎麼使用安裝 與 一些我踩到的雷






Docker 環境

要運行laradock首先需要有一個Docker的環境可以跑
以我在Windows上開發的前提有三個方法可以架設Docker

Docker for Windows

官方推出的Windows軟體,直接使用MS的Hyper-V執行環境,少掉很多設定的步驟;
不過Hyper-V只有Win10 Pro版以上可以用,Home版還是得用VM執行。

Docker Toolbox

不支援hyper-V的可以改用Toolbox,會自動安裝VirtualBox跟設定相關的環境,包含 Kitematic 這套可以檢視與管理Container。(Docker for Windows需要自己下載放到安裝目錄)
Docker Quickstart Terminal


Kitematic 


VM + Docker

在Windows上安裝Linux來跑Docker,虛擬中的虛擬XD
比較麻煩的是如果要把程式碼利用Shared Folder Mount進VM內
會遇到權限的問題 (build container時會炸掉)


使用 Docker Toolbox

安裝基本上就是下一步到底就好了,裝好後桌面會出現兩個捷徑
推薦執行 Kitematic (Alpha) 讓它準備環境
注意: 這兩個只能選一個,不能兩個都執行,會炸!!

看到上面這張圖就表示Docker準備好了
然後可以把Kitematic關閉,因為之後都不會用到(XD

請執行 Docker Quickstart Terminal 以後需要打docker指令都需要用這個
如果有其他習慣的Command Tool也可以使用
Poweshell vs Cmder

開啟後預設會到使用者目錄(C:\Users\{User}),相對於Linux的Home
建立一個目錄Docker方便統整之後的檔案

安裝Laradock

照著官方的五個步驟就完成了

  1. git clone https://github.com/Laradock/laradock.git
    其實就是在Github的一個專案,用Git拉下來即可
    (甚麼?! 沒有 Git!!  恩...)
  2. 進入laradock資料夾之後 輸入 cp env-example .env
    如果要使用laradock都需要先進到該資料夾內
    這個.env類似Laravel .env可以設定一些環境,稍後在介紹
  3. docker-compose up -d nginx mysql redis
    docker-compose是一個執行一組Docker Containers的簡便方式。
    -d 使用背景程序 就是demon啦。
    nginx .... 後方接的是你想用的服務,只要docker-compose.yml有設定的service都可以使用
  4. 更改.env加入HOST
    因為container各自讀路,不能使用127.0.0.1連線
首次執行 docker-compose 時會開始下載所需要的container image,這段期間會比較久;
看到creating..... done就表示container ready了

這時可以使用docker-compose ps 檢視目前執行的container
docker-compose ps
 也可以使用Kitematic檢視
Kitematic

打開Localhost


別急著抓頭,在開啟 Docker Quickstart Terminal 時第一行文字有個IP
請使用這個IP連線而不是用localhost或是127.0.0.1

然後開啟 192.168.99.100
恩....恭喜成功了(黑人問號
因為現在web完全沒東西,當然吐404

建立phpinfo.php

預設www會指到與laradock同層的public目錄(就是在laradock隔壁的public)

舉個例子
laradock        是在 C:\Users\Asper\Docker\laradock
預設的web 就是在 C:\Users\Asper\Docker\public

建立public\phpinfo.php 內容為 <?php phpinfo(); 
開啟瀏覽器 http://192.168.99.100/phpinfo.php 就可以看到PHP資訊了

註1:  Asper是我的使用者名稱,請自行替換自己的
註2: 192.168.99.100是我docker的IP,請自行替換



建立Laravel專案

要打的字太多了,那就打天吧(X

沒有留言:

張貼留言