通过令牌对heroku CLI进行身份验证

时间:2020-04-05 04:18:32

标签: heroku heroku-cli

每次将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

2 个答案:

答案 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