在 docker-compose.yml 中:
mysql:
image: mysql:latest
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=symfony
- MYSQL_USER=symfony
- MYSQL_PASSWORD=symfony
我如何在 yml 配置文件中获取这些变量:
parameters:
database_host: 172.17.42.4
database_port: 3306
database_name: symfony
database_user: symfony
database_password: symfony
在 $_SERVER 中,它们是这样获取的:
$_SERVER["SYMFONY_MYSQL_ENV_MYSQL_DATABASE"],
$_SERVER["SYMFONY_MYSQL_PORT_3306_TCP_ADDR"],
$_SERVER["SYMFONY_MYSQL_ENV_MYSQL_PASSWORD"],
$_SERVER["SYMFONY_MYSQL_ENV_MYSQL_USER"]
最佳答案
在 symfony 中,您可以在 yaml 配置中包含 PHP 文件,您可以在其中设置运行时的参数,覆盖 parameters.yml 中的静态参数值。
在你的 app/config/config.yml 中
imports:
- { resource: parameters.yml }
- { resource: parameters.php }
然后创建文件app/config/parameters.php,内容如下
<?php
// app/config/parameters.php
$container->setParameter('database_name', $_SERVER['SYMFONY_MYSQL_ENV_MYSQL_DATABASE']);
$container->setParameter('database_host', $_SERVER['SYMFONY_MYSQL_PORT_3306_TCP_ADDR']);
$container->setParameter('database_user', $_SERVER['SYMFONY_MYSQL_ENV_MYSQL_USER']);
$container->setParameter('database_password', $_SERVER['SYMFONY_MYSQL_ENV_MYSQL_PASSWORD']);
关于php - 如何在 symfony yml 配置文件中从 docker 获取环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41115003/