(пишите здесь, если кто-то сталкивается с тем же сценарием)
хорошо, я принял предложение @ vladimir и сделал следующее:
Команда Heroku (для Дженкинса, работающего на ec2):
Следующая команда необходима для передачи встроенного образа докера в heroku с помощью jenkins / или другого инструмента ci / cd; Из-за недавнего изменения (https://devcenter.heroku.com/changelog-items/1426) нажатие на реестр heroku больше не достаточно. Для выполнения приведенной ниже команды вам необходимо установить пояс для инструментов heroku.
Контейнер Heroku: веб-релиз
Установить оснастку на Amazon Linux, как показано ниже:
следуйте инструкциям для включения epel https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-repositories.html
Затем измените /etc/yum.repos.d/epel.repo. Под разделом, помеченным [epel], измените enable = 0 на enabled = 1.
Тогда сделай
sudo yum install epel-release
sudo yum install yum-plugin-copr
sudo yum copr enable ngompa/snapcore-el7
sudo yum -y install snapd
sudo systemctl enable --now snapd.socket
Затем установите Heroku Toolbelt:
sudo snap install --classic heroku
Развертывание в Docker образа на heroku:
В скрипте Jenkins:
withCredentials([string(credentialsId: 'heroku-api-cred', variable: 'herokuRegistryApiCred')]) {
sh "docker login -u email@example.com -p ${herokuRegistryApiCred} registry.heroku.com"
}
// Tag docker img (in my case it was an image in dockerhub)
sh "docker tag dockerhubusername/pvtreponame:${imageTag} registry.heroku.com/your_app_name/release_type[ie>web]"
sh "docker push registry.heroku.com/your_app_name/web"
sh "/usr/local/bin/heroku container:release web --app=your_app_name"
sh "docker logout registry.heroku.com"
Чтобы запустить приложение в Docker (в моем случае это была Java), мне пришлось добавить следующую строку (в противном случае она зависала, потому что: 1. сообщить приложению о привязке порта в heroku. 2. сообщить веб-процессу о запуске команды. ENTRYPOINT ["java", "- jar", "my_spring_boot_app-0.0.1-SNAPSHOT.jar"] не работает на heroku.):
CMD ["web", "java $JAVA_OPTS -Dserver.port=$PORT -jar /usr/app/my_spring_boot_app-0.0.1-SNAPSHOT.jar"]