使用env变量部署到Heroku按钮

时间:2017-05-17 13:53:13

标签: heroku

我想在我的GitHub上托管的应用程序中添加一个“Deploy to Heroku”按钮,但唯一的问题是它需要运行env变量,并且需要用户在它工作之前输入它们。在app.json架构中是否有一种方法可以在安装之前提示用户设置它们?或者我最好将它们设置为标准字符串,例如“replace_me”,并告诉用户从我的自述文件中输入数据。

我看到你可以在他们的文档中产生一个“秘密”,但我不确定这是否是我正在寻找的。

1 个答案:

答案 0 :(得分:2)

您可能已经发现了这一点,但看起来您在app.json架构中定义了env变量。 (这里详细描述:https://blog.heroku.com/introducing_the_app_json_application_manifest

他们提供的示例架构:

{
  "name": "Ruby on Rails",
  "description": "A template for getting started with the popular Ruby framework.",
  "website": "http://rubyonrails.org",
  "success_url": "/welcome",
  "addons": ["heroku-postgresql:hobby-dev", "papertrail"],
  "env": {
    "RAILS_ENV": "production",
    "COOKIE_SECRET": {
            "description": "This gets generated",
            "generator": "secret"
    },
    "SETUP_BY": {
            "description": "Who initiated this setup",
            "value": ""
    }
  },
  "scripts": {
    "postdeploy": "bundle exec rake db:migrate"
  }
}

然后,当您访问此部署URL时,您将路径传递到app.json文件所在的Github存储库,以及URL中的任何硬编码ENV变量:

https://heroku.com/deploy?template=https://github.com/rauchg/slackin/tree/0.5.1& env[SLACK_SUBDOMAIN]=testdomain

当您访问该网址时,它会自动生成一个表单,提示您输入剩余的环境值。

这是我创建的应用配置生成的示例表单here

enter image description here

当应用程序部署时,它会将用户输入的值存储在正确的环境变量中。