У меня есть веб-приложение на 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 очень расстраивает.