apache启动后运行drush命令

时间:2020-04-13 02:10:47

标签: docker drupal centos

我正在使用centos docker映像来构建容器并托管drupal站点。我需要在apache启动后运行drush命令。但是,apache启动后的每个命令都不会运行。 apache启动后,有什么方法可以运行drush命令吗?我的启动脚本有以下几行:

/usr/sbin/httpd -DFOREGROUND
drush updb -y

2 个答案:

答案 0 :(得分:0)

在您触发该命令后,Apache可能需要一些时间才能启动。而且,即使在成功启动apache之前,您的drush命令也可能正在执行。

有两种方法:

  1. 您可以在运行drush命令之前先进行静态睡眠。
  2. 在apache start命令之后,您可以放置​​一个循环来检查apache状态,如果状态未运行,则进入睡眠状态。否则会中断。然后,您可以运行drush命令。

答案 1 :(得分:0)

这是在哪里执行的?如果它不在您的drupal主目录中或以下,则drush可能找不到您的站点。 尝试之前,先尝试“ cd / var / www / html / orwhateverdirthesitehave”。 另一方面,自动运行此数据模型更改似乎并不安全。仅在模块更新且更新后需要更改数据模型时才运行它。恕我直言,像这样进行自动化是有风险的。 如果与updb无关,请完全考虑使用带有所有草稿内容的辅助脚本,然后开始将工作目录更改为drupal安装路径。

/usr/sbin/httpd -DFOREGROUND
/home/myuser/drushcommands.sh

和drushcommands.sh

!#/bin/sh
cd /var/www/html/mydrupal
drush cim -y
...