Heroku:部署基于Spray的服务

时间:2015-11-22 21:00:20

标签: scala heroku spray

我有一个简单的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=

请让我知道我错过了什么。

1 个答案:

答案 0 :(得分:2)

Procfile必须存在于Git仓库的根目录中。 Procfile中的命令也必须相对于根目录(当heroku运行时,它将是当前工作目录)。