我有一个简单的Scala项目,它有几个maven模块。它看起来像这样:
Parent project
|- service1
|- service2
|-...
|- serviceN
|- Procfile
|- ...
|- pom.xml
我试图将serviceN部署到heroku(目前只支持serviceN,没有其他服务)。在该服务的目录中,我执行了以下命令:
heroku create serviceN
git push heroku master
ServiceN是一个Spray.io项目,我试图在interface = 0.0.0.0和port = 8080上公开我的Web服务(在一些示例项目中看到它)。
当推送结束时,我们的界面给了我:
An error occurred in the application and your page could not be served. Please try again in a few moments.
当我运行heroku ps
时,没有输出。当我运行heroku scale web=1
时,我收到错误:
Scaling dynos... failed
! Couldn't find that formation.
我的Procfile(没有扩展名,开头的大写P)看起来像这样(我使用maven构建,因此我的应用程序被识别为Java应用程序):
web: java $JAVA_OPTS -cp target/serviceN.jar com.service.ObjectWithMain
当我查看日志时,我看到了:
2015-11-22T20:11:11.886773+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="MY_WS_ENDPOINT" host=serviceN.herokuapp.com request_id=71fad213-66d5-4186-a9fd-20ef505908e9 fwd="91.104.133.218" dyno= connect= service= status=503 bytes=
2015-11-22T20:11:12.217106+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=static-data-service.herokuapp.com request_id=cabd051a-1e37-4edd-841b-4a0eb875baf6 fwd="91.104.133.218" dyno= connect= service= status=503 bytes=
请让我知道我错过了什么。
答案 0 :(得分:2)
Procfile必须存在于Git仓库的根目录中。 Procfile中的命令也必须相对于根目录(当heroku运行时,它将是当前工作目录)。