2011-10-03 15 views
11

Sto seguendo le istruzioni quiCome creare il gioco play heroku?

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

ma io play run e poi git push heroku master, ma un procfile non viene trovato.

-----> No Procfile found. Will use process: 
     play run --http.port=$PORT $PLAY_OPTS 
  1. Come si crea esplicitamente un procfile?
  2. Le istruzioni sembrano indicare che dovrei premere su heroku master mentre l'app è in esecuzione. Sto leggendo quello sbagliato?
  3. Dove posso specificare $PORT e $PLAY_OPTS per mydomain.herokuapp.com?
  4. È meglio modificare semplicemente i valori per %prod in application.conf?

risposta

18

È necessario creare un file denominato Procfile nella root del vostro progetto ed un gioco dovrebbe contenere

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

Quando poi si distribuisce l'applicazione del $ PORT e $ PLAY_OPTS sarà stabilito dal Heroku quando l'applicazione è avviata.

+3

Grazie ragazzi. Non stavo proprio comprendendo la necessità di creare un file da quando era 2:00 e il mio cervello si era sciolto. Un lieve cambiamento nei documenti per richiamare esplicitamente la necessità di creare un "file chiamato Procfile nella radice della tua app di gioco" sarebbe il mio suggerimento per i custodi di Heroku. – Brian

+2

Per la riproduzione 2.0 è necessario un procfile diverso. Vedi: https://github.com/playframework/Play20/wiki/ProductionHeroku – logan

+0

@notbrain Come si imposta la variabile PORT definita da Heroku da soli – OVERTONE

9
  1. Creare un Procfile è semplice come sembra. Basta creare un file chiamato Procfile e dichiarare i tipi di processo e i comandi. Ulteriori informazioni sono qui: http://devcenter.heroku.com/articles/procfile In questo caso, non hai fornito un Procfile in modo che Heroku abbia appena usato il processo di riproduzione standard. È consigliabile procurarsi esplicitamente un Procfile nel caso in cui tali modifiche vengano apportate in futuro.

  2. No, non stai leggendo così male. Per caricare una nuova versione della tua app esegui una git push su heroku.

  3. La variabile $ PORT è impostata internamente da Heroku. Non c'è bisogno di impostarlo. La variabile $ PLAY_OPTS è impostata nello spazio della tua app quando per la prima volta sposti la tua app Play su Heroku. Puoi vederlo usando la riga di comando heroku. Maggiori informazioni su tale linea di comando è qui: http://devcenter.heroku.com/articles/heroku-command

Per visualizzare la configurazione app:

$ heroku config 

Per cambiare $ PLAY_OPTS:

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

Per impostazione predefinita, Heroku verrà eseguito Play Apps sotto l'ID quadro prod. Puoi cambiarlo nel tuo Procfile o nella variabile $ PLAY_OPTS. L'unica cosa importante qui è che la tua app viene eseguita in modalità PROD su heroku (nota che la modalità è diversa dall'id framework). Heroku non può eseguire le app Play in modalità DEV.

+0

# 2 - poiché ora sono impostato direttamente sul Procfile, la mia domanda sulla necessità di spingerlo * mentre il gioco è in esecuzione localmente * è ora considerata assurda. Io * stavo * leggendo male, una semplice spinta a heroku con modifiche innescherà una distribuzione, indipendentemente dalla corsa. Per qualche ragione ho pensato che il Procfile fosse qualcosa che è stato creato dal gioco una volta lanciato. – Brian

8

Dipenderà notevolmente dalla versione di gioco che si sta utilizzando. Ho controllato i documenti e ha fornito i seguenti Procfile s per ciascuna delle versioni date:

  • 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 
    

Per ulteriori informazioni per il controllo di versione specifica questo URL:

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

Assicurarsi di sostituire 2.2.1 con qualsiasi versione che si sta utilizzando.

Problemi correlati