Cyber Coding Course

師其意,不泥其跡

關於D-Laravel的專案模式

一、首先,您需要有安裝Docker在您的Mac系統,此為必要條件。

二、加入別名到您家目錄的.bash_profile上,以下為採用Dlaravel的Docker Image進行的Laravel installer,
就是執行容器內的laravel installer進行host端的Laravel安裝。
#D-Laravel的laravel installer
alias laravel='docker run --rm -v ${PWD}:/var/www/html -v ~/.dlaravel/cache:/home/dlaravel/.composer/cache -ti deviny/fpm:8.0.3 /home/dlaravel/.composer/vendor/bin/laravel'
#D-Laravel的Project mode簡化指令
alias pj='bash dlaravel/console'

設定別名後,記得要source ~/.bash_profile讓別名生效,如果您使用的為zsh,那麼也可新增到家目錄的~/.zshrc,記更一樣要~/.zshrc。

三、有了上面的bash,我們就可以在系統上不需安裝composer或php就能安裝Laravel囉。
用Docker內的Laravel installer進行Laravel的安裝。
laravel new myapp

四、因為要採用Project模式執行D-Larael,所以我們可以透過git將D-Laravel下載到Laravel的專案中,已這個為例是myapp。
cd myapp
git clone https://github.com/DevinY/dlaravel.git

六、D-Laravel預設並非是專案模式,我們可透過別名pj要求D-Laravel使用專案模式的設定。
在myapp的資料夾內,執行下方命令,只需執行一次即可
pj project



七、之後,我們就能透過up及down來啟用或關閉專案囉。
#啟動容器
pj up
#關閉容器
pj down

八、預設D-Laravel的專案模式會採用隨機連接埠
[+] Running 5/5
⠿ Network myapp_dlaravel_net  Created                                                                                                                                                   3.7s
⠿ Network myapp_default       Created                                                                                                                                                   3.7s
⠿ Container myapp_web_1       Started                                                                                                                                                   6.4s
⠿ Container myapp_db_1        Started                                                                                                                                                   4.2s
⠿ Container myapp_php_1       Started                                                                                                                                                   7.0s
Do no thing
DB:
host:56264
Web:
http://myapp.test:56266
Password:
127.0.0.1 myapp.test

九、如果您想讓Project模式固定使用port 8080,只需調整D-Laravel中的docker-compose.yml即可。
vi  dlaravel/docker-compose.yml

在docker-compose.yml檔案中,補上原"80"調整為"8080:80",在存檔離開,左邊的host port只要不衝突,在範圖內您可以隨意調整您要的連接埠。
version: '3.6'
services:
#=== web service ======================
web:
image: nginx
dns: 8.8.8.8
ports:
- "8080:80"
- "443"
volumes:
==略==

十一、重啟容器看看
pj restart

十二、如果您是D-Laravel的使用者,就猜到了吧,pj就是console的bash。
因此,我們可以用pj info查看,就跟我們之前用./console info查看的意思一樣。
pj info
D-Laravel is running in project mode.
/Users/devin/myapp/dlaravel/docker-compose-project.yml
DB:
host:56602
Web:
http://myapp.test:8080
可以看到,myapp的連接埠,變為8080啦。
 

作者: Devin Yang