当前位置: 首页 > 面试题库 >

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

曹臻
2023-03-14
问题内容

在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']);


 类似资料:
  • 我想在Laravel模型中分配一个默认值,但该值应该来自配置文件。 我写下面的代码,但它给我的错误 它向我显示了一个错误,比如常量表达式包含无效操作 如何从配置文件中获取值并在Laravel模型文件中设置$attribute变量?

  • 假设我有. env文件包含如下行: 不像普通的文件有< code>export前缀,所以我不能直接获取文件。 创建从. env文件加载内容并将其设置为环境变量的外壳脚本的最简单方法是什么?

  • 我想在我的Python项目中添加一些全局环境变量。我的想法是添加一个<代码>。env,并设置一些变量,如下所示: 在Python中,我如何能够在我的项目中访问这些变量。在网上,我看到,其中也被导入,但这似乎不起作用。有人知道我如何做到这一点吗?我还可以设置一个文件来包含这些全局变量。或者,如果有更好的Python实践,有人能分享一下吗?

  • 问题内容: 我不知道如何从docker inspect中获取环境变量。 当我跑步 我得到以下 问题答案: 您可以直接使用类似于以下命令 对我来说 你会发现,更换的 像 给 实际上,我注意到以下内容,从更一般的显示到更精确的显示, 注意:有效且较短,当然,我发布了“旧”语法。

  • 问题内容: 我是webpack的新手,几乎可以解决所有构建部分的问题,但是现在的问题是,我想将环境变量从.env文件传递到webpack config,以便可以通过插件将这些变量传递给我的构建文件。 目前,我能够将环境变量直接从webpack传递到我的构建中。请查看下面我在webpack中使用的代码。 我的构建脚本是 问题答案: 您可以为此目的使用包装 参考:https : //www.npmjs

  • 我正在尝试为我的sping-boot应用程序设置测试。在常规执行中,我从. env文件中获取一些值,这些值是我在运行配置中指定的,如下所示: 但当我尝试运行最简单的测试时,它会失败,但有一个例外: 加载Application Contextjava.lang.IllegalStateException失败:加载Application Context失败………原因:org.springframewo