如何正确检查是否安装了Symfony应用程序?

在我们的Dockerfile的entrypoint.sh我需要检查(实际上是数据库),看看是否有一个应用程序当前安装,如果不运行一个php app/console命令。

这是我目前的做法:

 CHECK=$(php app/console doctrine:query:sql "SELECT * FROM user" -q) if [ $? -ne 0 ]; then php app/console vendor:install fi 

哪个不舒服 还有其他什么方法来检查这个?

注意数据库是由第三方MySql代理服务创build的。 所以我无法检查数据库的存在,因为永远是真的。

基于Composer钩子,您可以检查这些文件和目录。

需要:

  • app/boostrap.php.cachevar/boostrap.php.cache
  • app/config/parameters.yml
  • vendor/symfony
  • 检查app/cachevar/cache是否被预热。

可选的:

  • 检查执行app/SymfonyRequirements.phpvar/SymfonyRequirements.php是否会返回成功 – 但是对于一些严格的要求,这可能会失败。
  • web/bundles如果有任何资产要安装。