Вопрос касается использования стека "контейнер", в частности, статьи https://devcenter.heroku.com/articles/build-docker-images-heroku-yml
Heroku всегда было очень удобно использовать со "обычным" стеком, когда разработчик помещал свой код в Heroku git, а приложение Heroku собирало и развертывало его.
С помощью стека «контейнер» мы получили возможность создать приложение вручную или в составе CI pipelnine, затем создать образ Docker локально и затем отправить его в Heroku для развертывания с использованием контейнера CLI Heroku: push и container: release.
С помощью heroku.yml manifect мы получили возможность запросить у нас образ сборки Docker платформы Heroku, нам просто нужно вставить Dockerfile как часть исходного кода приложения. Это имеет смысл во многих случаях использования, например, мне нравится разрабатывать с Heroku, но мой клиент просит меня развернуть их AWS для производства, и я использую тот же образ Docker, который я тестировал на Heroku, для продвижения на prod (я уверен, что люди будут использовать эту функцию иным образом).
Но что меня поражает, так это то, что с помощью heroku.yml manifest мы теряем функцию автоматического определения и сборки типов приложений. Чтобы иметь возможность отправить исходный код вместе с Dockerfile в Heroku git, и чтобы Heroku собрал мое приложение maven и подготовил образ докера с новой версией приложения, мне нужно поместить множество шаблонов в Dockerfile для загрузки jdk и maven, создать приложение maven и скопировать артефакты на изображение.
Может быть, я что-то пропустил, и есть лучший способ обработать сборку приложения maven как часть сборки образа Docker с помощью манифеста heroku.yml?