我想在我的GitHub上托管的应用程序中添加一个“Deploy to Heroku”按钮,但唯一的问题是它需要运行env变量,并且需要用户在它工作之前输入它们。在app.json
架构中是否有一种方法可以在安装之前提示用户设置它们?或者我最好将它们设置为标准字符串,例如“replace_me”,并告诉用户从我的自述文件中输入数据。
我看到你可以在他们的文档中产生一个“秘密”,但我不确定这是否是我正在寻找的。 p>
答案 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:
当应用程序部署时,它会将用户输入的值存储在正确的环境变量中。