在Heroku评论应用中将主机名设置为环境变量

dec*_*lan 18 heroku

我在Heroku上使用与Github集成的评论应用程序功能.在我的一个应用程序中,我设置了一个名为的环境变量HOST_NAME.例如,如果该站点是http://www.purplebinder.com,那么HOST_NAME将设置为www.purplebinder.com.它用于我们使用cookie和交易电子邮件的几个地方.

当我打开一个新的拉取请求并启动评论应用程序时,HOST_NAME应该是这样的purplebinder-pr-27.herokuapp.com.

有没有办法自动设置这个值?关于评论应用程序Heroku文档说env var可以从父应用程序继承值或者硬编码app.json.这些方法都不适用于此,因为每次都需要不同的值,也不同于父应用程序.

Heroku还说env var可以通过"生成器"设置,但不会详细说明它是什么.

此问题可能与为评论应用设置ROOT_URL重复,但没有人回答这个问题.它也类似于如何从应用程序内部获取Heroku应用程序名称,但其中的答案涉及在创建应用程序后运行脚本 - 这里我想将此值设置为初始构建的一部分.

use*_*559 13

来自https://devcenter.heroku.com/articles/github-integration-review-apps#heroku_app_name-and-heroku_parent_app_name:

为了帮助编写脚本,可以使用两个特殊的配置变量来查看应用程序.如果您 在文件中指定HEROKU_APP_NAMEHEROKU_PARENT_APP_NAME作为必需或可选的配置变量app.json,Heroku将分别将这些配置变量设置为新的应用程序名称和父应用程序名称.然后,它们将可用于postdeploy脚本,以便您可以执行更高级的引导和配置.

这是一个app.json使用HEROKU_APP_NAME和的示例文件 HEROKU_PARENT_APP_NAME:

{
    "name":"Advanced App",
    "scripts": {
        "postdeploy": "rake db:setup && bin/bootstrap"
    },
    "env": {
        "HEROKU_APP_NAME": {
            "required": true
        },
        "HEROKU_PARENT_APP_NAME": {
            "required": true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这个例子中`bin/bootstrap`的内容是什么?我似乎无法在应用程序中设置heroku ENV变量. (5认同)
  • 仅供参考,"HEROKU_APP_NAME"就是这个名字.即`my-app`不是'my-app.herokuapp.com`所以你必须手动追加其余的`.herokuapp.com`来获得一个可用的URL. (3认同)
  • 该示例中的“postdeploy”行毫无意义。如果该条目显示 `"postdeploy": "echo $HEROKU_APP_NAME"` ,它将有助于传达这样的想法:环境变量可以在 `postdeploy` 步骤中访问。 (2认同)

tfm*_*m92 5

如果将heroku-buildpack-cli添加到父应用程序,则可以从部署后脚本中设置环境变量.该命令应如下所示:

heroku config:set HOST_NAME=${HEROKU_APP_NAME}.herokuapp.com --app ${HEROKU_APP_NAME}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

6405 次

最近记录:

8 年,5 月 前