如何从symfony yml配置文件中的docker获取env变量 [英] how get env variables from docker in symfony yml config file

查看:671
本文介绍了如何从symfony yml配置文件中的docker获取env变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在docker-compose.yml中:

in 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配置文件中获取此变量:

how i can get this variables in yml config file:

parameters:
    database_host: 172.17.42.4
    database_port: 3306
    database_name: symfony
    database_user: symfony
    database_password: symfony

它们的取值如下:

$_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文件,可以设置参数rs在运行时覆盖parameter.yml中的静态参数值。

In symfony, you can include PHP files in yaml configuration, where you can set parameters in runtime overriding the static parameter values from parameters.yml.

在你的app / config / config.yml中

In your app/config/config.yml

imports:
    - { resource: parameters.yml }
    - { resource: parameters.php }

然后创建具有以下内容的文件app / config / parameters.php

Then create the file app/config/parameters.php with the following content

<?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变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆