Как создать профайл героя?
Я следую инструкциям здесь
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
на любую версию, которую вы используете.