by Devin Yang , 4 years ago

本文簡單的來介紹,在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的背後是如何運透過官方指令運作的。

Tags: dlaravel

Devin Yang

有什麼建議或想法,歡迎提出來哦

No Comment

Post your comment

Login is required to leave comments

Similar Stories


wordpress, d-laravel, docker, docker-compose

如何用D-Laravel安裝Wordpress

約8分鐘的教學影片,介紹在D-Laravel上安裝Wordpress. D-Laravel是一個docker-compose的Laravel框架開發環境,但不代表他不能拿來裝別的東西。 這個影片,介紹使用D-Laravel安裝非Laravel的PHP專案, 您可以學到D-Laravel上的相關指令用法: ./create --host用法, docker-compose up -d及 ./console mysql用法, D-Laravel v1.0.0版後的資料庫連線設定方式。

laravel

升級Laravel 8.8,我把文章及筆記整合在一起了

Laravel 8大改版,我的網站也跟著改版,我網站上的「筆記」及「文章」本來是分開兩個區塊的。 這次把他整合在一起了,反正也沒什麼文章,合起來內容看起來比較多。:p

dns

清除MacOS DNS快取方式

如何清除各種不同版本的MacOS DNS 快取的指令