by Devin Yang

建立于: 6年前 ( 更新: 6年前 )

本文简单的来介绍,在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 v1.5.0新版本了。

一、变更fpm的image生成方式,优化dockerfiles/fpm/php7.x/Dockerfiles,更容易设置及调整扩展包。 二、调整docker-compose-build.yml,并在D-Laravel的Project目录下, 可透过./console build快速创建自己的image罗。 还有更多的变更....

dlaravel

如何设置外网IP给D-Laravel上的Project?

这个影片介绍了在D-Laravel环境上,我们如何指定Public Ip(公有IP)给特定的Project的使用。 不论是外部Production环境的设置或是内网自己项目Demo时,都可参考此影片的设置方式哦 。 在影片中虽然我采用了PPPoE拨接的外网IP进行说明,但是我们改变一下也可以用自己电脑上的区网IP。 这样就可以让同事连到我们的D-Laravel的Project了。

docker,dlaravel

D-Laravel 1.5.5变更说明

D-Laravel的fpm image在php 7.2.1以前是使用docker php官方的dockerfile重build的, 并且所以我可以指定了fpm的默认的owner是dlaravel, --with-fpm-user=USER Set the user for php-fpm to run as. (default: nobody) --with-fpm-group=GRP Set the group for php-fpm to run as.