Cyber Coding Course

師其意,不泥其跡

關於D-Laravel的a別名,如何執行php artisan

本文簡單的來介紹,在D-Laravel的別名a如何執行container內的php artisan.
除了透過簡單的bash在host端執行container內的命令,也能了解其背後的運作方式。

首先,我們知道,D-Laravel可以透過 ./console alias a ,取得別名a的指令。
alias a="../../artisan.sh"

當我們host端(MacOS或Linux)的某一個D-Laravel的Project的資料夾內時,例如sites/proj1。
我們輸入了 a --version 別名,就能跑出Laravel的版號,為何呢?
其實執行a別名是,就是去執行 dlaravel目錄下的artisan.sh這個bash
透過這個bash,相當於幫我們執行了官方的指令如下:
docker-compose exec -u dlaravel php php proj1/artisan --version

先來查看我們自己使用的docker-compose版本,可用指令docker-compose version
如果您執行結果與本文不同時,有可能您需要更新您的docker-compose版本。


進入正題,現在讓我們來看看a --version轉換後的docker-compose指令後,幹了什麼好事。
點下圖可放大查看:
docker-compose help

因此變成別名後,相對簡單很多,而且不用進到php的container中即可執行Laravel的artisan指令囉。
這裡我採用docker-compose標準的指令,進入container後,再進行php artisan --version的過程

在上例如,至少需執行三行指令,才能執行到proj1資夾的php artisan指令。
一、docker-compose exec -u dlaravel php bash(執行php container服務名稱的bash,所以我們進入container內了)
二、cd proj1(進入proj1的資料夾,在container內,預設的工作目錄是在/var/www/html)
三、php artisan --version (感動,執行到proj1的php artisan --version了)

換成D-Laravel提供的a別名,我們只要a --version

所以,舉一反三,如果我們想看php服務在container中,php的版本,指令為何?
php --version

或者,我們要來查查在php服務的container中使用的Linux核心版本是什麼?
uname -a

在D-Laravel的docker-compose環境中,mysql的container服務名稱是db。
所以,我們exec db mysql,即可執行container內的mysql指令,進入mysql中囉。
mysql

希望本文,您能了解到,當我們使用了簡易的別名時,在D-Laravel的背後是如何運透過官方指令運作的。

作者: Devin Yang