docker - Heroku:如何在 gitlab CI/CD 中发布现有图像?

标签 docker heroku heroku-toolbelt heroku-cli

我想将我的应用程序部署为来自 Gitlab CI/CD 管道的容器。
几天前,我可以部署我在 heroku devCenter 中编写的 docker 镜像。

docker login --username=_ --password=$(heroku auth:token) registry.heroku.com


并将其推送到 heroku 注册表。

docker tag imageregistry.heroku.com/app/process-type

docker push registry.heroku.com/app/process-type


但随后他们分两步更改了部署

heroku cointainer:push

heroku container:release


在更新之前,它是在容器被推送到容器注册表时部署的。现在我需要以任何方式释放它。
我尝试将图像重命名为 release 并尝试安装 heroku CLI,但随后我无法登录到 heroku 注册表。
你是怎么解决的?

最佳答案

这是我昨天找到的一个有效的解决方案,它触发了发布。您可以使用 docker 保留您的部署,并将这个小脚本添加到您的管道中。

#!/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"

该解决方案来自 Kai tödter,您可以在 https://toedter.com/2018/06/02/heroku-docker-deployment-update/ 找到它。

关于docker - Heroku:如何在 gitlab CI/CD 中发布现有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50909812/

相关文章:

php - Laravel Heroku 应用程序错误

heroku - Bastard Heroku 应用程序 : who's the father?(也就是说,原始本地目录在哪里?)

docker - 在docker上部署Node.js

docker - 共享Docker容器

ruby-on-rails-3 - Sqlite3 引用部署简单的 heroku Rails 应用程序

python - 如何在 Heroku 上使用supervisord

Django 和 Heroku : Static files work with 'foreman start' but not './manage.py runserver'

heroku-toolbelt - 上传到heroku导致错误

docker - 如何设置DOCKER_HOST?

Docker 和 Gitlab - 如何修改 docker run