我遇到了与制作包含Symfony基础应用程序的Docker容器映像相关的问题。我可以毫无问题地安装php扩展(mcrypt,pdo_mysql等),但是我无法通过Composer安装依赖项。
所以...我有,我有与缓存和形成文件autoload.php
相关的问题。我无法理解为什么,但它尝试连接数据库。我认为,因为我得到以下信息:
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:
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[HY000] [2002] No such file or directory
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
我已尝试按命令composer install --no-scripts --no-autoloader
安装,但已成功完成。但是我没有文件autoload.php就无法安装资产。
是否可以使用基于Symfony的项目依赖项和资产安装到Docker容器映像?谢谢!
答案 0 :(得分:0)
AppKernel
中的一个捆绑包在编译内核期间需要数据库连接(预热缓存)。您需要通过当时禁用它们来调试哪个捆绑包执行此操作。
如果你禁用所有这些(Symfony除外),建设容器可能就好了。
所以问题基本上在于post-install-cmd
的这两行,对于我在Platform.sh上的项目,删除这些行允许我构建容器:
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",