Docker 镜像中的环境变量

Docker 镜像中的环境变量

我的目标是在 docker-compose.yml 文件中使用可以在应用程序内部引用的环境变量,例如config/database.yml

docker-compose.yml


...
environment:
  $DB_NAME: myapplication
  $DB_USER: appadmin
  $DB_PASS: secret
...

配置/数据库.yml

...
database: $DB_NAME
db_user: $DB_USER
db:pass: $DB_PASS
...

但无论我如何尝试将变量发送到我的文件,它们都无法被识别。:(

答案1

您只是想在 Compose 文件中设置变量?在这种情况下,您不需要在它们前面加上“$”:

environment:
  - DB_NAME=database
  - DB_USER=appadmin
  - DB_PASS=secret

您也可以使用映射:

environment:
  DB_NAME: database
  DB_USER: appadmin
  DB_PASS: secret

当您在数据库配置文件中引用它们时,您也可以使用变量名,同样,不需要“$”:

environment:
  DB_NAME
  DB_USER
  DB_PASS

您可以检查Compose 环境选项文档和Compose 环境参考了解更多信息。

希望有所帮助。

相关内容