我按照这里的指示
http://blog.heroku.com/archives/2011/8/29/play/
但是我play run
然后git push heroku master
但找不到proc文件。
-----> No Procfile found. Will use process:
play run --http.port=$PORT $PLAY_OPTS
heroku master
。我读错了吗?$PORT
和$PLAY_OPTS
?%prod
的值是否更好?答案 0 :(得分:18)
您需要在项目的根目录中创建一个名为Procfile的文件,并且Play应该包含
web: play run --http.port=$PORT $PLAY_OPTS
当您部署应用程序时,应用程序启动时,heroku将设置$ PORT和$ PLAY_OPTS。
答案 1 :(得分:9)
创建Procfile就像听起来一样简单。只需创建一个名为Procfile的文件,然后声明您的流程类型和命令。更多信息请访问:http://devcenter.heroku.com/articles/procfile 在这种情况下,您没有提供Procfile,因此Heroku只使用了标准的Play过程。如果此默认值在将来发生变化,最好提供一个Procfile文件。
不,你没有读错。要上传新版本的应用,请执行git push to heroku。
$ 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将在prod框架ID下运行Play应用程序。您可以在Procfile或$ PLAY_OPTS变量中更改此设置。这里唯一重要的是你的应用程序在heroku上以PROD模式运行(请注意,模式与框架ID不同)。 Heroku无法在DEV模式下运行Play应用程序。
答案 2 :(得分:8)
这将在很大程度上取决于您正在使用的播放版本。我检查了文档,并为每个给定版本找到了以下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
有关特定版本的详细信息,请查看以下网址:
http://www.playframework.com/documentation/2.2.1/ProductionHeroku
请确保将2.2.1
替换为您正在使用的任何版本。