【发布时间】:2021-06-16 09:45:28
【问题描述】:
Heroku 目前将数据库凭据作为一个连接字符串提供,即:postgres://foo:bar@baz/fubarDb。
我的开发环境由一个 PostgreSQL 容器和一个使用 docker-compose 文件编排的应用程序容器组成。 docker-compose 文件提供来自 .env 文件的环境变量,目前看起来有点像这样:
DB_USER=foo
DB_PASS=bar
DB_HOST=baz
这些凭据作为环境变量传递给我的应用程序,一切正常。问题是,为了完成这项工作,我必须在我的数据库连接信息中检查null 以查看是否有完整的数据库 URL 并使用它......否则回退到个人凭据......
【问题讨论】:
-
你为什么不改变你的容器想要的环境变量?
-
@Chris 因为我的 compose 文件(用于开发)中的 postgres 容器需要它用来配置自身的单个变量。然后我的应用程序容器也使用了这些相同的变量,我可以确定它们是同步和一致的。现在,我必须支持用于生产的 URL 和用于开发的单个 var,并对 URL 进行空检查,如下所示:github.com/robertmain/meal-plan/blob/master/src/server/… 它很乱。
-
您不应该在 Heroku 上拥有 Postgres 容器。你不能自己跑。对于
web进程,唯一允许的入站连接位于端口 443 和 80 上。使用 Heroku's own Postgres service、RDS 或类似的托管数据库。 -
请edit您的问题并在此处显示相关代码,而不是要求我们离开现场。 Stack Overflow 模型部分是为了帮助未来的用户以及当前的用户,并且链接可能会中断。另外,请参阅How to Ask,其中部分内容是“假装您正在与一位忙碌的同事交谈”。您越容易让我们理解您的问题,您的运气就越好。
-
干得好自己追这个!很高兴你把它整理好了。
标签: variables heroku rename environment