我正在尝试登录registory.heroku.com,以便可以推送自己的图像,但是认证时遇到问题。如果我遵循guidance from the docs,我会得到:
> docker login --username=_ --password=(heroku auth:token) registry.heroku.com 2077ms Thu 29 Oct 09:15:57 2020
› Warning: token will expire 05/07/2021
› Use heroku authorizations:create to generate a long-term token
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
因此,它希望我使用长期令牌。如果我使用heroku authorization:create
生成一个,并使用生成的令牌作为密码,那么登录将被拒绝:
) docker login --username=_ --password="this is a token" registry.heroku.com 1140ms Thu 29 Oct 09:21:23 2020
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: login attempt to https://registry.heroku.com/v2/ failed with status: 401 Unauthorized
我是否需要在长期令牌上设置作用域才能使其正常工作?我想使用长期令牌,因为该进程将在CI上运行,并且希望通过环境变量进行配置。
答案 0 :(得分:1)
我遇到了同样的问题,结果我使用的是令牌的 id 而不是实际的令牌,使用 heroku authorizations:info <token_id>
来获取令牌。
答案 1 :(得分:-1)
第一个很好。您的登录成功。 第二个密码/令牌错误。
将您的docker login
更改为类似命令
echo $(DOCKER_PASSWORD) | docker login --username $(DOCKER_USERNAME) --password-stdin registry.heroku.com
可能不是echo $(DOCKER_PASSWORD)
而不是heroku auth:token
,但我没有尝试过,所以不能保证它能正常工作。