【问题标题】:How to create play heroku procfile?如何创建播放 heroku procfile?
【发布时间】:2011-11-29 19:15:51
【问题描述】:

我按照这里的指示进行操作

http://blog.heroku.com/archives/2011/8/29/play/

但我先是 play run,然后是 git push heroku master,但没有找到 procfile。

-----> No Procfile found. Will use process: 
       play run --http.port=$PORT $PLAY_OPTS
  1. 如何显式创建 procfile?
  2. 指令似乎表明我应该在应用程序运行时推送到heroku master。我读错了吗?
  3. 在哪里可以为 mydomain.herokuapp.com 指定 $PORT$PLAY_OPTS
  4. 只修改 application.conf 中 %prod 的值会更好吗?

【问题讨论】:

    标签: java heroku playframework


    【解决方案1】:

    您需要在项目的根目录中创建一个名为 Procfile 的文件,并且对于 Play,它应该包含

    web: play run --http.port=$PORT $PLAY_OPTS
    

    当您部署应用程序时,$PORT 和 $PLAY_OPTS 将在应用程序启动时由 heroku 设置。

    【讨论】:

    • 谢谢大家。我只是不理解创建文件的必要性,因为它是凌晨 2 点,我的大脑被融化了。我对 Heroku 守护者的建议是对文档进行轻微更改以明确指出需要创建“在您的播放应用程序的根目录中名为 Procfile 的文件”。
    • 对于 play 2.0,您需要不同的 procfile。见:github.com/playframework/Play20/wiki/ProductionHeroku
    • @notbrain 如何自己设置 Heroku 定义的 PORT 变量
    • 这可能是最近发生了变化,但play run 不适合我。相反:target/start -Dhttp.port=$PORT $PLAY_OPTS 按以下方式工作:stackoverflow.com/questions/14797106/…
    【解决方案2】:
    1. 创建 Procfile 就像听起来一样简单。只需创建一个名为 Procfile 的文件并声明您的进程类型和命令。更多信息在这里:http://devcenter.heroku.com/articles/procfile 在这种情况下,您没有提供 Procfile,因此 Heroku 只使用了标准 Play 流程。最好显式提供 Procfile,以防将来更改此默认设置。

    2. 不,你没看错。要上传应用的新版本,请执行 git push 到 heroku。

    3. $PORT 变量由 Heroku 在内部设置。无需设置。当您第一次将 Play 应用程序推送到 Heroku 时,会在您的应用程序空间中设置 $PLAY_OPTS 变量。您可以使用 heroku 命令行查看它。有关该命令行的更多信息在这里:http://devcenter.heroku.com/articles/heroku-command

    查看您的应用配置:

    $ heroku config
    

    要更改 $PLAY_OPTS:

    $ heroku config:remove PLAY_OPTS
    $ heroku config:add PLAY_OPTS=...
    

    默认情况下,heroku 将在 prod 框架 ID 下运行 Play 应用程序。您可以在 Procfile 或 $PLAY_OPTS 变量中更改它。这里唯一重要的是您的应用程序在 heroku 上以 PROD 模式运行(注意该模式与框架 ID 不同)。 Heroku 无法在 DEV 模式下运行 Play 应用。

    【讨论】:

    • Re #2 - 因为我现在已经对 Procfile 进行了直接设置,所以我关于需要在本地运行时推送它的问题现在被认为是荒谬的。我读错了,简单地推送到heroku 并进行更改将触发部署,无论运行如何。出于某种原因,我认为 Procfile 是由 play 启动时创建的。
    【解决方案3】:

    这在很大程度上取决于您使用的播放版本。我检查了文档,发现每个给定版本都有以下Procfiles:

    • 1.x

      web: play run --http.port=$PORT $PLAY_OPTS
      
    • 2.0

      web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS}
      
    • 2.2.0

      web: bin/<your-appname> -Dhttp.port=${PORT} ${JAVA_OPTS} -DapplyEvolutions.default=true
      
    • 2.2.1

      web: target/universal/stage/bin/<your-appname> -Dhttp.port=${PORT} -DapplyEvolutions.default=true
      

    有关特定版本的更多信息,请查看此 URL:

    http://www.playframework.com/documentation/2.2.1/ProductionHeroku
    

    确保将 2.2.1 替换为您正在使用的任何版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 2019-03-13
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多