Phalcon, Docker MySQL 连接失败

Phalcon, Docker MySQL connection fails

所以我有 3 个 docker 容器,一个带有 PHP+PhalconPHP,一个带有 MySQL,另一个带有网络服务器。现在在我的主机系统上,我可以连接到 docker 容器中的 MySQL,我也可以使用以下代码连接 PDO

new PDO('mysql:host=mysql;port=1024;dbname=database', 'root', 'password');

但出于某种原因,phalcon 框架无法像这样使用 config.php 文件连接到 MySQL 数据库

return new \Phalcon\Config([
    'database' => [
        'adapter'     => 'mysql',
        'port'        => 1024,
        'host'        => 'mysql',
        'username'    => 'root',
        'password'    => 'password',
        'dbname'      => 'database',
        'charset'     => 'utf8',
    ],
]);

在这种情况下,出于某种原因我得到了 Can't connect to MySQL server on 'mysql' (111 "Connection refused),尽管我 100% 确定我确实可以连接(如之前通过 PDO 连接所证明的那样)。我还尝试对实际的 MySQL 容器 IP 地址进行硬编码,但也不走运。

有什么想法吗?

所以它看起来有点愚蠢 "mistake" 但这是解决方案。 显然,当您使用 Phalcon 开发人员工具构建项目时,它不会使用端口配置初始化数据库,因为它会完全忽略它。您可以通过进入 app/config/services.php 文件并更改 db 服务以也包括端口配置来轻松解决此问题。

$connection = new $class([
    'host'     => $config->database->host,
    'port'     => $config->database->port,
    'username' => $config->database->username,
    'password' => $config->database->password,
    'dbname'   => $config->database->dbname,
    'charset'  => $config->database->charset
]);