2011-10-03 63 views
11

我在这里按照以下指示如何创建播放heroku procfile?

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的值是否更好?

回答

18

你需要创建一个在你的项目的根和播放名为Procfile文件时,它应该包含

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

当你再部署应用程序中的$ PORT和$ PLAY_OPTS将Heroku的设置当应用程序启动时。

+3

谢谢你们。从凌晨2点开始,我只是不理解创建文件的必要性,而且我的大脑已经融化。文档中的细微变化明确地提出需要在您的应用程序的根目录中创建一个名为“Procfile”的文件,这是我对Heroku提供者的建议。 – Brian

+2

对于play 2.0,你需要一个不同的proc文件。请参阅:https://github.com/playframework/Play20/wiki/ProductionHeroku – logan

+0

@notbrain你如何自己设置Heroku定义的PORT变量 – OVERTONE

9
  1. 创建Procfile非常简单。只需创建一个名为Procfile的文件并声明您的流程类型和命令。更多的信息在这里:http://devcenter.heroku.com/articles/procfile 在这种情况下,你没有提供一个Procfile,所以Heroku只使用了标准的播放过程。最好的做法是提供一个Procfile,以防将来进行默认更改。

  2. 不,你不是读错了。要上传您应用的新版本,请执行heroku的git推送。

  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的运行Play中的应用在prod框架id下。您可以在Procfile或$ PLAY_OPTS变量中更改它。这里唯一重要的是你的应用程序在heroku上以PROD模式运行(注意模式与框架ID不同)。 Heroku无法在DEV模式下运行Play应用。

+0

Re#2 - 因为现在我正在关注Procfile,所以当我在本地运行时需要推送它*的问题现在被认为是荒谬的。我*是*读错了,只要推动heroku进行更改就会触发部署,无论运行如何。出于某种原因,我认为Procfile是在启动时通过播放创建的。 – Brian

8

它将在很大程度上取决于您使用的播放版本。我查了文档,发现如下Procfile S代表每个给定的版本:

  • 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