composer php安装失败,当无法看到MySQL数据库

TL; DR:安装后脚本无法看到MySQL服务器时,composer php安装失败

我正在为Symfony应用程序构buildDocker容器,在构build过程中,我做了这样的事情

RUN export SYMFONY_ENV=prod && \ composer install --prefer-dist --optimize-autoloader 

在安装结束时,它会失败

 Generating optimized autoload files [Doctrine\DBAL\Exception\DriverException] An exception occured in driver: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) [Doctrine\DBAL\Driver\PDOException] SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) [PDOException] SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception [RuntimeException] An error occurred when executing the "'cache:clear --no-warmup'" command. 

现在,我可以使用--no-scripts但是大概我需要在启动一个容器后再次运行composer install ,并且希望我的容器尽可能地准备好。

由于我没有发现许多类似的问题,所以在我的应用程序中可能会有错,我怀疑我会回答我自己的问题。 我希望在描述它的时候,我会弄明白的。 唉,我没有。 线索是欢迎:)

学说介绍了一些试图自动检测数据库相关内容的代码。

解决方法是简单地告诉Doctrine目标服务器版本,例如

 doctrine: dbal: default_connection: default connections: default: dbname: Symfony2 user: root password: null host: localhost driver: pdo_mysql server_version: 5.6 

https://github.com/doctrine/DoctrineBundle/issues/351#issuecomment-75456547