【发布时间】:2019-07-24 01:42:21
【问题描述】:
我的 jar 文件中嵌入了 Tomcat 的 Java Web 应用程序。我可以使用 Docker 将应用程序容器化并使用命令 java -jar -myapp.jar 运行它,但我无法在 Heroku 中运行该容器。我尝试使用 heroku CLI 进行 dockerize 和部署,但 Heroku 给我一个“无法访问 jarfile”的错误。
我试图通过使用 heroku deploy:jar 来部署我的 fat jar 来解决这个问题,但这错误地给了我一个错误:
heroku deploy:jar target/*.jar -a medscanner2
-----> Packaging application...
- app: medscanner2
- including: target/medscanner2.jar
! ERROR: Could not get API key! Please install the Heroku CLI and run
`heroku login` or set the HEROKU_API_KEY environment variable.
! Re-run with HEROKU_DEBUG=1 for more info.
!There was a problem deploying to medscanner2.
!Make sure you have permission to deploy by running: heroku apps:info -a
medscanner2
我已登录 Heroku,我可以使用 heroku auth:whoami 来验证这一点,我可以推送容器并部署它们,所以这个错误没有任何意义。我用 HEROKU_DEBUG=1 重新运行,它没有返回任何更多信息。
我进一步尝试使用从 Heroku 获得的令牌在 CLI 中设置 HEROKU_API_KEY 变量,当我尝试部署 jar 时这仍然导致相同的错误。
我正在使用 Procfile(虽然我不确定是否有必要):
web: java -Dserver.port=$PORT -jar target/medscanner2.jar
由于该问题似乎表明访问存在问题,我看不出 Procfile 会如何影响它。
对我来说,将不使用 Spring Boot 的 Java Web 应用程序部署到 Heroku 的最佳方式是什么?我已经成功地将 docker 容器单独部署到 Google 应用引擎,所以 Heroku 的所有这些工作都非常令人沮丧。
【问题讨论】:
标签: java maven docker spring-mvc heroku