每次将docker映像从Gitlab注册表推送到Heroku注册表后,我都需要执行heroku container:release web
到Heroku运行映像(发行版),但是我想实现自动化
我将heroku CLI工具安装添加到了gitlab-ci-yml
中,但是我无法通过令牌对heroku CLI进行身份验证
尝试设置HEROKU_API_KEY = token并运行heroku login
时,出现错误Error: Cannot log in with HEROKU_API_KEY set
也尝试在启用HEROKU_DEBUG的情况下执行此操作,但调试器信息对我没有帮助
我不能使用~/.netrc
是否可以通过任何方式验证heroku CLI或自动在heroku中发布Docker映像?
当前gitlab-ci.yml:
before_script:
- apt install snapd
- snap install --classic heroku
- HEROKU_API_KEY=$HEROKU_API_TOKEN heroku login
- docker login -u $REGISTRY_UNAME -p $REGISTRY_PWD registry.gitlab.com
- docker login --username=_ --password=$HEROKU_PWD registry.heroku.com
script:
# a lot of tag & push lines
- heroku container:release web
答案 0 :(得分:2)
如果设置了HEROKU_API_KEY
环境变量,则无需再次登录。如果存在,则API密钥将用于CLI命令。
确保使用heroku authorizations:create
创建令牌-您可以使用此命令创建永不过期的令牌。有关详细说明,请签出this。
参考:https://github.com/heroku/cli/issues/502#issuecomment-309099883
请注意,git
之类的git push heroku master
命令将不使用API密钥。有关更多信息,请参见this。
答案 1 :(得分:0)
通过更改导致令牌更改的帐户密码并重新创建新令牌解决的问题
然后成功运行HEROKU_API_KEY=token heroku container:release web