2011-10-03 37 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