Как я могу развернуть Java-веб-приложение на heroku? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть веб-приложение на Java с Tomcat, встроенным в мой файл jar.Я могу контейнировать приложение с помощью Docker и запускать его с помощью команды java -jar -myapp.jar, но я не могу запустить этот контейнер в Heroku.Я пытался использовать heroku CLI для Dockerize и развертывания, но Heroku выдает ошибку «not access jarfile».

Я пытался исправить это, используя heroku deploy: jar, чтобы развернуть мой толстый 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 и могу использовать herokuauth: whoami, чтобы проверить это, я могу загружать контейнеры и развертывать их, поэтому эта ошибка не имеет никакого смысла.Я перезапустил с HEROKU_DEBUG = 1, и он больше не возвращал информацию.

Я также попытался установить переменную HEROKU_API_KEY в CLI с токеном, который я получил от Heroku, и это все еще вызывало ту же ошибку при попытке развернуть jar.

Я использую Procfile(хотя я не уверен, что это необходимо):

web: java -Dserver.port=$PORT -jar target/medscanner2.jar

Поскольку проблема, по-видимому, указывает на наличие проблемы с доступом, я не понимаю, как Procfile мог на нее повлиять.

Каков наилучший способ развертывания веб-приложения на Java, в котором не используется Spring Boot для Heroku?Я отдельно развернул докер-контейнер успешно на движке приложений Google, поэтому вся эта работа для Heroku очень расстраивает.

1 Ответ

0 голосов
/ 03 марта 2019

Я решил исправить это с помощью webapp-runner для развертывания моего приложения.Он запускает jar webapp-runner, который может запускать ваши .war файлы.Для этого потребовалось добавить heroku-maven-plugin и maven-dependency-plugin.

Затем я мог бы добавить Procfile: web: java -jar target/dependency/webapp-runner.jar target/*.war --port $PORT

и использовать Heroku CLI для добавления приложения с помощью git.Ссылка с webapp-runner - это руководство по развертыванию Java-приложений tomcat с помощью webapp-runner.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...