目前,我有一个带有配置文件的网络应用程序。配置文件具有domain_name
,redis_url
等变量的全局声明。但是,当用户在其heroku帐户上部署应用程序时,他们必须手动更改这些设置以匹配其环境。是否可以使heroku运行部署后脚本,用heroku属性替换这些设置?
答案 0 :(得分:0)
您的应用可能已经使用的起始点为Heroku Environment Variables。如果没有,那么我强烈建议这样做。
然后我看到两个选项,具体取决于配置文件类型:
如果配置文件是脚本文件,它可以直接读取环境变量并解决问题。
如果配置文件是文本文件,则必须先生成它。您可以通过创建放在app repo中的生成器脚本来实现这一目标。出于解释的目的,我们假设您的Web应用程序是基于Python的。您可以创建文件bin/generate_config.py
并将其添加到repo。然后在这个生成器中,您从系统中读取变量并创建文本配置文件。
接下来,您需要做的就是修改Procfile
。让我们假设它看起来像这样:
web: python manage.py runserver 0.0.0.0:${PORT}
您需要将其更改为:
web: python bin/generate_config.py & python manage.py runserver 0.0.0.0:${PORT}
它将首先生成配置文件,然后启动您的应用程序。
您必须采用我的解决方案来使用您的网络应用语言,但总体思路是一样的。
我希望这对你有所帮助。