如何创建播放heroku procfile?

时间:2011-10-03 09:37:34

标签: java heroku playframework

我按照这里的指示

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

但是我play run然后git push heroku master但找不到proc文件。

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

3 个答案:

答案 0 :(得分:18)

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

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

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

答案 1 :(得分:9)

  1. 创建Procfile就像听起来一样简单。只需创建一个名为Procfile的文件,然后声明您的流程类型和命令。更多信息请访问:http://devcenter.heroku.com/articles/procfile 在这种情况下,您没有提供Procfile,因此Heroku只使用了标准的Play过程。如果此默认值在将来发生变化,最好提供一个Procfile文件。

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

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

  4. 要查看您的应用配置:

    $ 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应用程序。

答案 2 :(得分:8)

这将在很大程度上取决于您正在使用的播放版本。我检查了文档,并为每个给定版本找到了以下Procfile

  • <强>的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
    

有关特定版本的详细信息,请查看以下网址:

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

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