如何在heroku上部署lagom-scala



我是lagom-scala-api的初学者。我已经使用lagom-scala-play框架开发了rest api。现在我想在heroku上部署我的服务,只是为了进行实时测试。我按照下面的链接继续。

https://www.playframework.com/documentation/2.0/ProductionHeroku

将源代码从github连接到heroku并进行部署。我查看了活动构建日志,发现heroku正在后台运行一些进程。一开始。。。

*---->Scala应用程序检测到

----->正在安装JDK 1.8…完成

----->运行:sbt编译阶段

下载1.2.8:的sbt启动器

发件人https://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/1.2.8/sbt-launch-1.2.8.jar

To  /tmp/scala_buildpack_build_dir/.sbt_home/launchers/1.2.8/sbt-launch.jar

下载sbt启动器1.2.8 md5哈希:

发件人https://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/1.2.8/sbt-launch-1.2.8.jar.md5

To  /tmp/scala_buildpack_build_dir/.sbt_home/launchers/1.2.8/sbt-launch.jar.md5
/tmp/scala_buildpack_build_dir/.sbt_home/launchers/1.2.8/sbt-launch.jar: OK

正在获取org.scala-sbt 1.2.8(这可能需要一些时间(。。。*

并且在完成之后,它检测到一些错误

[info] Main Scala API documentation to /tmp/scala_buildpack_build_dir/crud-api/target/scala-2.13/api...
model contains 11 documentable templates
[info] Main Scala API documentation successful.
[info] Packaging /tmp/scala_buildpack_build_dir/crud-api/target/scala-2.13/crud-api_2.13-1.0-SNAPSHOT-javadoc.jar ...
[info] Done packaging.
[success] Total time: 9 s, completed Dec 1, 2020 4:01:45 AM
[error] Expected symbol
[error] Not a valid command: -
[error] Expected end of input.
[error] Expected '--'
[error] Expected 'debug'
[error] Expected 'info'
[error] Expected 'warn'
[error] Expected 'error'
[error] Expected 'addPluginSbtFile'
[error] -Xms512M
[error]  ^

错误:无法运行sbt!

We're sorry this build is failing. If you can't find the issue in application
code, please submit a ticket so we can help: https://help.heroku.com
You can also try reverting to the previous version of the buildpack by running:
$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-scala#previous-version

Thanks,
Heroku

推送被拒绝,编译Scala应用程序失败。

推送失败的

我有什么东西不见了吗。或者,如果您对如何在heroku或任何其他平台上部署lagom-scalaapi以进行实时测试有任何其他想法。提前谢谢。

在Heroku上部署Lagom通常是不可能的,因为Heroku有一个限制:为同一服务提供服务的dynos不能相互连接。Lagom建立在Play之上,但最重要的是,建立在Akka Clister之上。要形成集群,Akka集群节点必须相互通信。

还有一个单独的问题,它实际上触发了您看到的错误,那就是Lagom项目通常是一个单回购,在一个构建中有许多服务。有时,构建只是服务API sbt模块和服务实现模块。在任何情况下,部署到Heroku都需要将单个服务推送到Heroku git repo。因此,您必须改进Play/sbt构建包以支持Lagom项目:当检测到Lagom项目时,忽略API模块,只部署实现。

但是,同样,即使您进行了构建包改进,您仍然会被Dynos之间的网络分离所导致的集群形成障碍所阻碍。

相关内容

  • 没有找到相关文章

最新更新