首页 > 解决方案 > 重命名环境变量

问题描述

Heroku 目前将数据库凭据作为一个连接字符串提供,即:postgres://foo:bar@baz/fubarDb.

我的开发环境由一个 PostgreSQL 容器和一个用docker-compose文件编排的应用程序容器组成。该文件从当前看起来有点像这样的docker-compose文件提供环境变量:.env

DB_USER=foo
DB_PASS=bar
DB_HOST=baz

这些凭据作为环境变量传递给我的应用程序,一切都很好。问题是,为了完成这项工作,我必须null检查我的数据库连接信息以查看是否有完整的数据库 URL 并使用它......否则回退到个人凭据......

标签: variablesherokurenameenvironment

解决方案


哦!因此,事实证明,解决方案是修改我的docker-compose文件以获取环境变量并将它们连接成一个连接字符串:

diff --git a/docker-compose.yml b/docker-compose.yml
index 21f0d47..74a574e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -16,14 +16,10 @@ services:
       context: .
       target: base
     environment:
-      - APP_NAME
-      - DB_HOST
-      - DB_PORT
-      - DB_NAME
-      - DB_USER
-      - DB_PASS
-      - NODE_ENV
-      - PORT
+      APP_NAME: ${APP_NAME}
+      NODE_ENV: ${NODE_ENV}
+      PORT: ${PORT}
+      DATABASE_URL: postgres://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}
     user: "1000:1000"
     ports:
       - "127.0.0.1:${PORT}:${PORT}"

不再试图猜测要寻找哪些环境变量!


推荐阅读