我想将 dockerfile 上传到 Container Registry。
为此,首先我必须设置身份验证。为了做到这一点,我必须设置应用程序密钥。
至于密钥,我成功地遵循了这些说明: https://cloud.google.com/iam/docs/creating-managing-service-account-keys
我已经设法用密钥下载了 json 文件。
现在对于身份验证部分,我按照此处的步骤操作: https://cloud.google.com/container-registry/docs/advanced-authentication#gcloud-helper
我打开了云外壳(浏览器上的终端)。
我输入 gcloud auth login
我得到一个链接,我打开它,我复制并粘贴一个代码到终端,这工作正常。
现在我必须在我的系统本地键入对我进行身份验证的命令。
我输入 gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILE
KEY-FILE 是 json 的目录。
ACCOUNT 是格式为 [USERNAME]@[PROJECT-ID].iam.gserviceaccount.com 的服务帐户名称。您可以在 Cloud Console 的服务帐户页面上或使用命令 gcloud iam service-accounts list
查看现有服务帐户我收到此错误:
ERROR: (gcloud.auth.activate-service-account) Invalid value for [ACCOUNT]: The given account name does not match the account name in the key file. This argument can be omitted when using .json keys.
所以 ACCOUNT 有错误。
首先,PROJECT-ID 没问题。
对于 USERNAME,我使用:FIRSTNAME_LASTNAME
。这是我在 google shell(在浏览器上)的提示。
当我生成一个终端时,这就是我得到的 FIRSTNAME_LASTNAME@cloudshell
所以我省略了 @cloushell
部分并获得了它之前的部分。
但它不起作用。我打开 json 并且没有包含我的用户名的字段。这些是它具有的字段:
type
project_id
private_key_id
private_key
client_email
client_id
auth_uri
token_uri
auth_provider_x509_cert_url
client_x509_cert_url
project_id 字段包含 PROJECT-ID。 但是在 json 中没有提到我的 USERNAME。
字段 client_id 包含一些数字。
我也通过了电子邮件,我通过了client_id,但错误是一样的。
有人可以帮助我吗,我必须在 gcloud 命令中提供的正确用户名是什么/在哪里?