簡體   English   中英

如何將Java Web應用程序部署到heroku?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM