variables - 重命名环境变量
问题描述
Heroku 目前将数据库凭据作为一个连接字符串提供,即:postgres://foo:bar@baz/fubarDb
.
我的开发环境由一个 PostgreSQL 容器和一个用docker-compose
文件编排的应用程序容器组成。该文件从当前看起来有点像这样的docker-compose
文件提供环境变量:.env
DB_USER=foo
DB_PASS=bar
DB_HOST=baz
这些凭据作为环境变量传递给我的应用程序,一切都很好。问题是,为了完成这项工作,我必须null
检查我的数据库连接信息以查看是否有完整的数据库 URL 并使用它......否则回退到个人凭据......
解决方案
哦!因此,事实证明,解决方案是修改我的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}"
不再试图猜测要寻找哪些环境变量!
推荐阅读
- android - 为什么我的 Toast.makeText 不显示任何内容
- woocommerce - Woocommerce webhook 不会为非管理员用户触发
- sql - 基于特定记录集的 Oracle 循环序列
- html - CSS : 只有一个 div 可滚动
- java - 如何使用 Apache Common CSV CSVPrinter 添加新行?
- java - NServiceBus 和 Java 集成
- c# - Xamarin Form - 如何在 UWP 中以 PDF 或 JPEG 格式存储图像
- javascript - 如何声明一个 PHP 变量并将其传递给 AJAX url?
- python - 如何解决模块未找到错误cython
- php - Excel - 从相应数据中获取第 2 个或第 n 个匹配字符串