2011-10-03 10 views
11

estoy siguiendo las instrucciones aquíCómo crear play heroku procfile?

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

Pero yo play run y luego git push heroku master pero no se encuentra una procfile.

-----> No Procfile found. Will use process: 
     play run --http.port=$PORT $PLAY_OPTS 
  1. ¿Cómo se crea explícitamente un procfile?
  2. Las instrucciones parecen indicar que debo presionar a heroku master mientras la aplicación se está ejecutando. ¿Estoy leyendo eso mal?
  3. ¿Dónde puedo especificar $PORT y $PLAY_OPTS para mydomain.herokuapp.com?
  4. ¿Es mejor simplemente modificar los valores de %prod en application.conf?

Respuesta

18

Es necesario crear un archivo llamado Procfile en la raíz de su proyecto y si el juego debe contener

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

Cuando a continuación, implementar la aplicación de los $ PORT y PLAY_OPTS $ será fijado por heroku cuando se inicia la aplicación.

+3

Gracias chicos. Simplemente no entendía la necesidad de crear un archivo ya que eran las 2 de la mañana y mi cerebro se había derretido. Un ligero cambio en los documentos para llamar explícitamente la necesidad de crear un "archivo llamado Procfile en la raíz de tu aplicación de reproducción" sería mi sugerencia para los encargados de Heroku. – Brian

+2

Para jugar 2.0 necesitas un archivo diferente. Consulte: https://github.com/playframework/Play20/wiki/ProductionHeroku – logan

+0

@notbrain ¿Cómo configura la variable PORT definida por Heroku usted mismo? – OVERTONE

9
  1. Crear un archivo de proceso es tan simple como parece. Simplemente cree un archivo llamado Procfile y declare sus tipos de procesos y comandos. Más información está aquí: http://devcenter.heroku.com/articles/procfile En este caso, no proporcionó un archivo de proceso, por lo que Heroku acaba de utilizar el proceso de reproducción estándar. Es una buena práctica proporcionar explícitamente un archivo de proceso en caso de que este predeterminado cambie en el futuro.

  2. No, no estás leyendo eso mal. Para cargar una nueva versión de su aplicación, realice un git push a heroku.

  3. La variable $ PORT está establecida internamente por Heroku. No es necesario configurarlo. La variable $ PLAY_OPTS se establece en el espacio de su aplicación cuando primero empuja su aplicación Play a Heroku. Puedes verlo usando la línea de comando heroku. Más información sobre esa línea de comandos está aquí: http://devcenter.heroku.com/articles/heroku-command

para ver la configuración de aplicaciones:

$ heroku config 

Para cambiar $ PLAY_OPTS:

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

Por defecto, heroku se ejecutará Jugar con aplicaciones debajo de la ID del marco prod. Puede cambiar esto en su Procfile o en la variable $ PLAY_OPTS. Lo único importante aquí es que tu aplicación se ejecute en modo PROD en heroku (ten en cuenta que el modo es diferente de la ID del framework). Heroku no puede ejecutar las aplicaciones Play en modo DEV.

+0

Re # 2: como ahora estoy listo para usar el Procfile, mi pregunta sobre la necesidad de presionar * mientras el juego se ejecuta localmente * ahora se considera absurdo. I * estaba * leyéndolo mal, un simple push to heroku con cambios activará una implementación, independientemente de si se está ejecutando. Por alguna razón, pensé que el Procfile era algo creado por el juego cuando se lanzó. – Brian

8

Dependerá considerablemente de la versión de reproducción que esté utilizando. Comprobé los docs y encontraron la siguiente Procfile s para cada una de las versiones dadas:

  • 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 
    

Para obtener más información para la comprobación de la versión específica de esta URL:

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

asegúrese de que sustituye 2.2.1 con cualquier versión que está utilizando.