by Devin Yang

建立於: 4年前 ( 更新: 4年前 )

本文簡單的來介紹,在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

需要登入才可留言!

類似的文章


dlaravel

使用D-Laravel build自己專用的php fpm image。

D-Laravel已提供了Build好的php image,如果需要自己調整及Build自己專用的Image相當簡單。 一、首先在D-Laravel的錄中,進入dockerfiles/fpm,選擇您要Build的PHP版本,例如7.2。 指令如下...

dlaravel

D-Laravel v1.5.0新版本了。

一、變更fpm的image產生方式,優化dockerfiles/fpm/php7.x/Dockerfiles,更容易設定及調整擴充套件。 二、調整docker-compose-build.yml,並在D-Laravel的Project目錄下, 可透過./console build快速建立自己的image囉。 還有更多的變更....

dlaravel

D-Laravel特定服務重啟

一般情況下,我們使用./console restart重建並且執行contaiener。 有時,我們有多個服務,並不想要一次重啟所有的服務, 這時,可以使用./console restart [servce name]來重啟特定服務..