如何从symfony yml配置文件中的docker中获取env变量

在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中,可以将PHP文件包含在yaml配置中,在其中可以在运行时设置参数,以覆盖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']);

以上是 如何从symfony yml配置文件中的docker中获取env变量 的全部内容, 来源链接: utcz.com/qa/408831.html

回到顶部