如ddev exec:找不到命令(.bash_aliases)中的回答
.ddev/commands/web
中的shell脚本非常棒。
是否也可以从另一个调用命令? 喜欢
#!/bin/bash
# pull prod content to local
dump_remote_database
sync_down_files
import_database
(理论上)会调用
. ddev/commands/web
中定义的三个单独的命令
目前我明白了
/mnt/ddev_config/commands/web/sync_down: line 5: dump_remote_database: command not found
/mnt/ddev_config/commands/web/sync_down: line 6: sync_down_files: command not found
/mnt/ddev_config/commands/web/sync_down: line 7: import_database: command not found
使用主机自定义命令,您可以调用另一个
ddev
命令,但使用 web
或其他自定义命令则不能,因为它们在容器内执行,甚至不知道 ddev
存在(它位于主机上、您的工作站上,并且容器无法访问或查看它)。
使用主机命令,例如,
ddev relaunch
中的.ddev/commands/host/relaunch
,您可以得到这个,其中重新启动调用ddev launch
:
#!/bin/bash
## Description: Launch a browser with URI /user
## Usage: relaunch [path]
## Example: "ddev relaunch"
ddev launch /user
使用 Web 容器命令时,您是在 Web 容器内执行(它甚至不知道 ddev 存在,它是它自己的小世界)。 在这种情况下,您可能必须复制/粘贴另一个容器的某些功能网络命令。
例如,如果您想在自定义 Web 命令中打开
xdebug
,则不能使用 ddev xdebug
,因为 ddev
在 Web 容器内是未知的。但是您可以查看 xdebug 命令的代码 并找出要做什么。您可以在 Web 容器内使用 enable_xdebug
命令,就像 ddev xdebug on
一样,您可以使用如下所示的 .ddev/commands/web/xdebugon
命令:
#!/bin/bash
## Description: Enable xdebug inside web container
## Usage: xdebugon
## Example: "ddev xdebugon"
# Do some other things... and ...
enable_xdebug
这是一个简单的示例,但其想法是使用您正在使用的环境中可用的工具。