[英]How can I deploy a java web app to heroku?
我有一個Java Web應用程序,在我的jar文件中嵌入了Tomcat。 我可以使用Docker對該應用程序進行容器化,並使用命令java -jar -myapp.jar運行它,但是我無法在Heroku中運行該容器。 我嘗試使用heroku CLI進行dockerize和部署,但是Heroku給我一個錯誤“無法訪問jarfile”。
我試圖通過使用heroku deploy: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 App Engine,所以Heroku的所有工作都令人沮喪。
我最終通過使用webapp-runner來部署我的應用程序來解決此問題。 它運行可運行.war文件的webapp-runner jar。 這需要添加heroku-maven-plugin和maven-dependency-plugin。
然后,我可以添加一個Procfile: web: java -jar target/dependency/webapp-runner.jar target/*.war --port $PORT
並使用Heroku CLI使用git添加應用。 與webapp-runner的鏈接是使用webapp-runner部署tomcat Java應用程序的指南。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.