如何从另一个调用 ddev Web 命令

问题描述 投票:0回答:1

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
1个回答
2
投票

使用主机自定义命令,您可以调用另一个

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

这是一个简单的示例,但其想法是使用您正在使用的环境中可用的工具。

© www.soinside.com 2019 - 2024. All rights reserved.