how get env variables from docker in symfony yml config file

后端 未结 2 513
温柔的废话
温柔的废话 2021-01-06 15:05

in docker-compose.yml:

mysql:
  image: mysql:latest
  container_name: mysql
  environment:
    - MYSQL_ROOT_PASSWORD=root
    - MYSQL_DATABASE=symfony
    -          


        
相关标签:
2条回答
  • 2021-01-06 15:13

    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.

    In your app/config/config.yml

    imports:
        - { resource: parameters.yml }
        - { resource: 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']);
    
    0 讨论(0)
  • 2021-01-06 15:28

    There now (as of Symfony 3.2) is a syntax to do this in yaml files:

    # app/config/parameters.yml
    parameters:
        database_host: '%env(DATABASE_HOST)%'
    

    see http://symfony.com/doc/current/configuration/external_parameters.html

    0 讨论(0)
提交回复
热议问题