如何在Heroku应用程序中添加.env文件或以其他方式设置环境变量?

时间:2018-04-18 16:52:58

标签: heroku

我已经在网上针对这个问题尝试了很多不同的解决方案,但都没有成功。

问题在于:我的应用程序需要知道它是在Heroku(生产模式)还是本地(开发模式)上运行。为此,我们希望使用环境变量。我已经了解Heroku上的环境变量可以在.env文件中设置。所以我的尝试是运行heroku run bash -a <app-name>,然后通过这样做来安装vim:

mkdir ~/vim
cd ~/vim

# Staically linked vim version compiled from https://github.com/ericpruitt/static-vim
# Compiled on Jul 20 2017
curl 'https://s3.amazonaws.com/bengoa/vim-static.tar.gz' | tar -xz

export VIMRUNTIME="$HOME/vim/runtime"
export PATH="$HOME/vim:$PATH"
cd -

除了反复崩溃之外,当我登录和退出shell时,vim不再工作了:

~ $ vim // in the heroku shell
vim: error while loading shared libraries: libXt.so.6: cannot open shared object file: No such file or directory

我也试过了heroku plugins:install heroku-vim但是之后运行heroku vim只会导致长时间的延迟,然后正常的heroku shell打开,没有vim。

如果我让vim上班,我真的不在乎。我只想在Heroku上写一个名为.env的文件,这样我就可以在其中设置环境变量。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

Heroku上不需要.env文件。实际上,自

以来,这样的文件不能很好地工作
  • Heroku从您的Git存储库获取其所有文件,
  • ephemeral filesystem,这意味着对.env等文件的更改很快就会丢失,
  • 如果您扩展应用,则.env文件无法在其他dynos上播放

因此,在Heroku上创建.env文件并不是一个好方法。

相反,您可以使用heroku config:set <var> <value>,使用primary key | name | date 或其网络用户界面。无论哪种方式,您都将获得常规环境变量。

答案 1 :(得分:1)

只需在揭示配置中定义键和值。在.env上使用它的方式相同。必须将.env文件提交到github是不安全的。 例如 Paystack_payment_url作为密钥 https://api.paystack.co作为值。

答案 2 :(得分:0)

这很简单。 就像您在 .env 文件中添加它们一样,对 heroku 的命令行执行相同的操作,您将看到 heroku 重新启动,您就可以再次飞行了。 只需使用命令: (heroku 配置:设置变量=this_is_the_value) 请记住在值中使用下划线,因为不允许使用空格,不允许使用倒引号 (" ") 将其转换为单个字符串。