Cyber Coding Course

師其意,不泥其跡

閒聊D-Laravel的console指令

D-Laravel的console指令讓我們快速的了解他執行了什麼。如果使用docker-compose是怎麼執行的呢?
我們來看看吧。

以下是實際執行的情況

一、圖片中,我執行了Linux的ls指令,查看有沒有docker-compose.yml檔,docker-compose指令,是使用遞迴的方式一層一層目錄找上去哦。
docker-compose 指令,只要找的到 docker-compose.yml 這個檔就能依檔案中的設定,去建立執行的容器囉 。

二、我們來看看,圖片中,我執行了./console指令,這隻bash幫助我們可以非常快速的執行docker-compose。不加參數的console指令,
在D-Laravel的設定上,就是進到php服務的容器內。
所以很明顯,我執行完./console就進入到容器中了
dlaravel@web:/var/www/html$
各位看官,是否注意到了,當執行./console指令時,底下印出了一行官方的指令呢?
docker-compose  -f /Users/devin/dlaravel/docker-compose.yml exec -u dlaravel php bash
這是讓我們理解,./console幹了什麼事用的,他就是跑了docker-compose指令,非常明顯的,-f就是指明使用那個docker-compose.yml檔。
而-u就是在容器中要使用何種身份,這也是為何,設定別名的console指令,您可以在任意地方執行的原因之一。

三、即然如此,我們是在dlaravel的目錄中,而新版的fpm image,使用的預設使用者也是dlaravel,指令當然可以檢化。
來看看到圖片上,我輸入了如下指令一樣能正常進到php服務的容器內:
docker-compose exec php bash
(註: php是容器的服務名稱,而bash則是您在容器中要執行的指令,您可以把bash改top看看,就會跑容器內的top指令哦。)

執行的結果,是與./console結果,相同的您說是吧。
所以,您也可以試試更多指令,例如下方的:
./console ps

docker-compose ps
這兩指令,結果必然相同,因為都是做同一件事情(那用console做啥,就自動補全可快很多呀)。

本人是混用,就是了,如果您使用了dlaravel的.env檔,基本上需完全使用console指令。
當然您可以把你要的一些相關服務移到docker-compose.yml內也OK,話說回來用console就好了呀,
console + .env可以任意擴充更多的服務不是很好嗎? :)

最後,希望您讀完本篇後,對D-Laravel與docker-compose有更深入的了解。:)





 

作者: Devin Yang