首页 > 解决方案 > 如何在 Heroku 上为 Docker 设置动态环境变量?

问题描述

我有一个 Ktor 应用程序部署为 Heroku 上的容器,并希望通过环境变量设置数据库属性,如此处所述, 而不是将解析逻辑放在我的应用程序代码中,因为它似乎非常特定于 Heroku。由于我将应用程序部署为容器,因此没有为我定义 JDBC 变量(JDBC_DATABASE_URL和)JDBC_DATABASE_USERJDBC_DATABASE_PASSWORD

是否可以解析为 my orDATABASE_URL中的环境变量?用于提取它们的 bash 脚本可能如下所示:Dockerfileheroku.yml

#! /bin/bash
regex="postgres://([^:]+):([^@]+)@(.+)"

if [[ $DATABASE_URL =~ $regex ]]
then
    export JDBC_DATABASE_USER="${BASH_REMATCH[1]}"
    export JDBC_DATABASE_PASSWORD="${BASH_REMATCH[2]}"
    export JDBC_DATABASE_URL="jdbc:postgresql://${BASH_REMATCH[3]}"
fi

但是我该怎么做才能使它们在我的应用程序中作为环境变量可用?

标签: dockerherokuenvironment-variables

解决方案


推荐阅读