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

在 Heroku 上部署的Quarkus应用程序给出错误 R10(启动超时)

朱高超
2023-03-14

我在将Quarkus 1.10应用程序作为Docker映像部署到Heroku时遇到了问题。

同一个应用程序,使用SpringBoot和一个类似的Docker映像成功引导,但是由于PORT的错误绑定,Quarkus不知何故触发了臭名昭著的R10引导超时错误,即使当我看到引导时间真的很短时(SpringBoot版本为2秒对4.5秒)。如果我在本地启动映像,它可以完美地工作,不会出现任何问题。

我的最终Docker映像如下(为简洁起见,省略了多阶段构建步骤):

FROM gcr.io/distroless/java:11
ENV QUARKUS_MAILER_FROM=${EMAIL_USERNAME} \
    QUARKUS_MAILER_USERNAME=${EMAIL_USERNAME} \
    QUARKUS_MAILER_PASSWORD=${EMAIL_PASSWORD}
EXPOSE 8080
COPY --from=backend /usr/src/app/target/*-runner.jar /usr/app/app.jar
COPY --from=backend /usr/src/app/target/lib /usr/app/lib
ENTRYPOINT [ "java", "-jar" ]
CMD ["/usr/app/app.jar", "-Dquarkus.http.host=0.0.0.0", "-Dquarkus.http.port=${PORT}"]

我使用以下命令来部署应用程序:

heroku container:push web
heroku container:release web

我看不到错误在哪里。我还尝试从Dockerfile中删除EXPOSE指令,但这不是错误的原因。

共有1个答案

史烨
2023-03-14

我已经解决了这个问题,这真的很愚蠢。

修改Dockerfile的ENTRYPOINT和CMD部分如下:

ENTRYPOINT [ "java" ]
CMD ["-Dquarkus.http.host=0.0.0.0", "-Dquarkus.http.port=${PORT}", "-jar", "/usr/app/app.jar"]

它起作用了。问题是,系统属性必须在-jar参数之前传递,否则Quarkus不会为${PORT}选择正确的值

 类似资料:
  • 我的python应用程序作为本地docker容器运行良好,但当尝试在heroku上部署时,我得到以下错误: 错误R10(启动超时)- 我的dockerfile文件: 我认为这可能与应用程序对于dyno=1来说有点太大有关,我必须付费才能增加dyno?但是我不确定.. 提前感谢!!

  • 我正在Heroku上部署一个网站,但我在尝试运行“Heroku open”时收到了“应用程序错误”。 我相信我已经成功地将文件推送到Heroku中,这是我的“git推送heroku master”代码的一部分: 当我运行“heroku config-s | grep PATH”时,我得到了 我正在使用Ruby 1.9.3和Rails 4.0.0 文件夹 宝石环境 箱/轨道 垃圾箱/包裹 仓/耙

  • 我正在尝试部署一个简单的应用程序,没什么大不了的,但我总是收到这个错误。 错误R10(启动超时)- 即使Heroku在60秒前就完成了部署。我也在服务器上设置了process.env.PORT。我在Heroku上有几个应用程序,所以我很熟悉部署。 我事先制作了服务器捆绑文件(src/build/bundle.js)和客户端捆绑文件(src/dist/bundle.js),并将所有内容推送到Hero

  • 我正在尝试部署一个运行在puma和jruby上的rails应用程序。程序文件如下所示 彪马的配置放在 配置/puma.rb 我对工人有条件初始化的原因是因为Heroku抱怨(或者可能是彪马)工人模式不适用于JRuby和Windows;无论如何, 我在heroku上注意到的奇怪行为是(与我的本地环境不同),集群Puma实例启动时没有任何问题,并选择两个不同的端口来绑定,即3000和5000。 但是,

  • 每次都会出现以下错误!有相同的修复方法吗? 2021-10-07T10:47:31.133956 00:00heroku[路由器]: at=错误代码=H10 desc="应用程序崩溃"方法=GET路径="/"主机=zturlshortener.herokuapp.comrequest_id=c2f90e55-52f5-4955-a1d6-4028456cfddb fwd="103.199.173.

  • 错误:命令错误,退出状态为1:Command://app/.heroku/python/bin/python/app/.heroku/python/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel/tmp/tmp3b4z4ntu cwd://tmp/pip-i