Как создать профайл героя?

Я следую инструкциям здесь

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
  • Как явным образом создаю профайл?
  • Инструкции показывают, что я должен нажать heroku master, пока приложение запущено. Я читаю это неправильно?
  • Где я могу указать $PORT и $PLAY_OPTS для mydomain.herokuapp.com?
  • Лучше ли просто изменять значения для %prod в application.conf?

Ответ 1

Вам нужно создать файл с именем Procfile в корневом каталоге вашего проекта, а для воспроизведения он должен содержать

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

При развертывании приложения $PORT и $PLAY_OPTS будут установлены героем при запуске приложения.

Ответ 2

  • Создание Procfile так же просто, как кажется. Просто создайте файл Procfile и объявите типы и команды вашего процесса. Больше информации здесь: http://devcenter.heroku.com/articles/procfile В этом случае вы не предоставили Procfile, поэтому Heroku просто использовал стандартный процесс воспроизведения. Лучшей практикой является явное предоставление Procfile в случае, если это изменение по умолчанию изменится в будущем.

  • Нет, вы не читаете это неправильно. Чтобы загрузить новую версию своего приложения, выполните git push to heroku.

  • Переменная $PORT устанавливается внутри Heroku. Не нужно его устанавливать. Переменная $PLAY_OPTS устанавливается в вашем пространстве приложения, когда вы сначала нажимаете Play Play на Heroku. Вы можете увидеть его с помощью командной строки 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. Вы можете изменить это в своем Procfile или в переменной $PLAY_OPTS. Важно только то, что ваше приложение запускается в режиме PROD на герою (обратите внимание, что режим отличается от идентификатора фрейма). Heroku не может запускать Play приложения в режиме DEV.

Ответ 3

Это будет значительно зависеть от используемой вами версии воспроизведения. Я проверил документы и нашел следующую 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
    

Для получения дополнительной информации о конкретной версии проверьте этот URL:

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

Убедитесь, что вы заменили 2.2.1 на любую версию, которую вы используете.