4747 - [ 3.2 安装 PHP 扩展] ( #32-安装-php-扩展 )
4848 - [ 3.3 在 PHP 容器中执行命令] ( #33-在-php-容器中执行命令 )
4949 - [ 3.4 使用 composer] ( #34-使用-composer )
50+ - [ 3.5 快捷操作] ( #35-快捷操作 )
5051- [ 4. 常见问题] ( #4-常见问题 )
5152 - [ 4.1 如何在其他容器中请求 nginx 配置的域名] ( #41-如何在其他容器中请求-nginx-配置的域名 )
5253 - [ 4.2 在 PHP 容器中使用 cron 定时任务] ( #42-在-php-容器中使用-cron-定时任务 )
101102│ ├── phpmyadmin phpMyAdmin 配置目录
102103│ ├── rabbitmq Rabbitmq 配置目录
103104│ └── redis Redis 配置目录
105+ ├── .bash_aliases.example .bash_aliases 示例配置
104106├── .env.example .env 变量示例配置
105107├── docker-compose.yml.example docker-compose 示例
106108├── dpe.sh 初始化脚本
127129
128130 - MacOS
129131
130- - 没有苹果电脑故无法尝试,后续补充
132+ - 未尝试
131133
1321342 . ` clone ` 项目
133135
@@ -250,7 +252,7 @@ Zend OPcache
250252
251253支持的扩展在这边可以在这边查看:[docker-php-extension-installer](https://github.com/mlocati/docker-php-extension-installer#supported-php-extensions)。
252254
253- > 这种方式安装扩展和 DNMP 的方式不同,通过这种方式安装的扩展,在容器销毁后重新创建,不会保留,需要重新安装。
255+ > 这种方式安装扩展和 ` DNMP` 的方式不同,通过这种方式安装的扩展,在容器销毁后重新创建,不会保留,需要重新安装。
254256
255257### 3.3 在 PHP 容器中执行命令
256258
@@ -259,16 +261,95 @@ Zend OPcache
259261root@08240e17170e:/www# php -v
260262```
261263
262- 这里移除了 DNMP 中使用 `alias` 的方式在 Host 主机中执行 PHP 命令。
263-
264264### 3.4 使用 composer
265265
266266```
267267# sudo docker-compose exec php81 bash
268268root@08240e17170e:/www# composer install
269269```
270270
271- 这里移除了 DNMP 中使用 `alias` 的方式在 Host 主机中执行 `composer` 命令。
271+ ### 3.5 快捷操作
272+
273+ 1. 把 [.bash_aliases.example](.bash_aliases.example) 的内容拷贝到 `~/.bash_aliases` 或 `~/.bashrc`
274+ 2. 修改 `~/.bash_aliases` 的变量 `DPE_COMPOSE` 和 `DPE_SOURCE`
275+
276+ ```
277+ # docker-php-env docker-compose.yml 绝对路径
278+ DPE_COMPOSE=/home/suyar/repo/suyar/github/docker-php-env/docker-compose.yml
279+ # docker-php-env 挂载的 DIR_SOURCE 绝对路径
280+ DPE_SOURCE=/home/suyar/repo
281+
282+ ...
283+ ```
284+
285+ 3. 开始使用快捷命令
286+
287+ ```
288+ # 进入 php81 容器,自动识别挂载目录中的相对路径
289+ $ tophp
290+ # 进入 php81 容器,自动识别挂载目录中的相对路径
291+ $ tophp81
292+ # 进入 php80 容器,自动识别挂载目录中的相对路径
293+ $ tophp80
294+ # 进入 php74 容器,自动识别挂载目录中的相对路径
295+ $ tophp74
296+ # 进入 php73 容器,自动识别挂载目录中的相对路径
297+ $ tophp73
298+
299+ # 进入 nginx 容器,自动识别挂载目录中的相对路径
300+ $ tonginx
301+
302+ # 进入 mysql8 容器
303+ $ tomysql
304+ # 进入 mysql8 容器
305+ $ tomysql8
306+ # 进入 mysql5 容器
307+ $ tomysql5
308+
309+ # 在宿主机执行 php 命令,自动识别挂载目录中的相对路径
310+ $ php
311+ $ php81
312+ $ php80
313+ $ php74
314+ $ php73
315+ ```
316+
317+ > 关于 `自动识别挂载目录中的相对路径` 的效果如下:
318+
319+ ① 假设我的 `.env` 配置如下:
320+
321+ ```
322+ ...
323+ # 挂载到容器的目录
324+ DIR_SOURCE=/home/repo
325+ ...
326+ ```
327+
328+ ② 假设我的 `~/.bash_aliases` 变量配置如下:
329+
330+ ```
331+ # docker-php-env 挂载的 DIR_SOURCE 绝对路径
332+ DPE_SOURCE=/home/repo
333+ ```
334+
335+ ③ 假设我宿主机中,当前目录为 **`/home/repo/laravel`**
336+
337+ 那么我在宿主机执行 `tophp` 命令后:
338+
339+ ```
340+ $ tophp
341+ root@0f70cb169d72:/www/laravel#
342+ ```
343+
344+ 可以看到,这时候默认进入到 `laravel` 目录。
345+
346+ 如果我在宿主机执行 `php -v`:
347+
348+ ```
349+ $ php artisan
350+ ```
351+
352+ 那么实际上,会在容器中的 `/www/laravel` 去执行 `php artisan` 命令。
272353
273354## 4 常见问题
274355
0 commit comments