当前位置: 首页 > 知识库问答 >
问题:

如何在heroku上部署lagom scala

谷梁智
2023-03-14

我是lagom scala API初学者。我使用lagom scala play框架开发了rest API。现在我想在heroku上部署我的服务,只是为了实时测试的目的。我遵循下面的链接继续。

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

正在下载1.2.8的sbt launcher:

摘自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 launcher 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 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]  ^
   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

是不是我缺少了什么。或者您对如何在heroku或任何其他平台上部署LagomScala api进行实时测试有任何其他想法。提前道谢。

共有1个答案

暨修洁
2023-03-14

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

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

但是,即使您进行了buildpack改进,仍然会被Dyno之间的网络分离所导致的集群形成障碍所阻塞。

 类似资料:
  • 我正在开发一个基于nodejs和postgresql的corona病毒项目。我正在尝试在heroku上部署我的应用程序,但我遇到了一些问题。这些问题来自postgres配置(我认为)。 我有一个. env文件,其中我初始化了一些变量(DATABASE_URL,...),但我不知道如何将它们传输到heroku。我关联了一个插件postgres-heroku,它会生成一个具有随机值的DATABASE_

  • 当我试图将我的流星应用程序部署到Heroku时,它在引导时崩溃了。

  • 目标 将 https://github.com/Ricardo-Li/node-practice-2 (这个项目已经被删了。参照 https://github.com/alsotang/node-lessons/tree/master/lesson3 的代码自己操作一下吧。)这个项目部署上 heroku,成为一个线上项目 我部署的在这里 http://serene-falls-9294.herok

  • 当我试图在heroku上部署springboot应用程序时,出现了以下错误: 无法执行目标org.apache.Maven.plugins:maven-compiler-plugin:3.8.1:在项目后端编译(default-compile):错误编译:无效的目标版本:11->[Help 1]Remote:[error]Remote:[error]要查看错误的全部堆栈跟踪,请使用-e开关重新运行

  • 我得到一个错误,当我试图部署一个未经修改的版本的最新的Git桶源heroku. ! 无法使用sbt生成应用程序 ! 推送被拒绝,未能编译Scala应用程序 git@heroku.com:xxxxxx.git![远程拒绝]主- 一切都在本地构建和运行,没有问题。http://gitbucket.herokuapp.com/有一个演示应用程序,所以我知道这是可能的。我怎样才能绕过这个错误? [编辑]我

  • 推荐先去了解下 在 Heroku 里部署 node.js 应用的文档。 首先,我们需要告诉 Heroku 安装项目的开发依赖包 devDependencies (以便能在 Heroku 环境下运行 npm run build): heroku config:set NPM_CONFIG_PRODUCTION=false 同时,我们想让应用以 生产模式 运行,绑定的主机IP为 0.0.0.0: he