I would like to deploy my application as a container from Gitlab CI/CD pipeline.
A few days ago I could deploy my docker image as written in the heroku devCenter.
docker login --username=_ --password=$(heroku auth:token) registry.heroku.com
and pushed it to the heroku registry.
docker tag imageregistry.heroku.com/app/process-type
docker push registry.heroku.com/app/process-type
But then they changed the deploy in 2 steps
heroku cointainer:push
heroku container:release
Before the update it was deployed when the container was pushed into the container registry. Now I need to release it in any way.
I tried to rename the image to release and tried to install heroku CLI but then I cannot log into heroku registry.
How did you solve it?
Here's a working solution I found yesterday which trigger a release. You can keep your deployment with docker and just add this little script to your pipeline.
#!/bin/bash
imageId=$(docker inspect registry.heroku.com/$YOUR_HEROKU_APP/web --format={{.Id}})
payload='{"updates":[{"type":"web","docker_image":"'"$imageId"'"}]}'
curl -n -X PATCH https://api.heroku.com/apps/${YOUR_HEROKU_APP}/formation \
-d "$payload" \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3.docker-releases" \
-H "Authorization: Bearer $YOUR_HEROKU_API_KEY"
This solution comes from Kai tödter and you can find it at https://toedter.com/2018/06/02/heroku-docker-deployment-update/