我正在使用wercker。 我试图在内部/ docker-push中推送GCR的容器。 但错误消息显示为belog:
Error interacting with this repository: gcr.io/my-gcr-project/wercker PUT https://gcr.io/v1/repositories/my-gcr-project/wercker/ returned 401
我的wercker.yml是
steps:
- internal/docker-push:
username: _json_key
password: $GCR_JSON_KEY_FILE
registry: https://gcr.io
repository: gcr.io/my-gcr-project/my-image-name
tag: test
AND $ GCR_JSON_KEY_FILE是Wercker环境变量
设定如下: (价值被掩盖了。)
GCR_JSON_KEY_FILE:
{
"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": ""
}
我该怎么办?
答案 0 :(得分:11)
从Google Cloud Console下载JSON密钥文件后,打开它并删除空白。留下单行JSON。如果你把它粘贴在Wercker GUI中,你就会被'\ n'污染,用GCR进行身份验证会失败。
答案 1 :(得分:1)
您可以检查您的YAML文件是否格式正确吗?
看起来你正在设置"内部/码头推送"为null,这可能不是你想要的。
试试这个:
steps:
- internal/docker-push:
username: _json_key
password: $GCR_JSON_KEY_FILE
registry: https://gcr.io
repository: gcr.io/my-gcr-project/my-image-name
tag: test
答案 2 :(得分:0)
您可以通过google.com与我们联系gcr-contact(只有GCR人员可以看到此列表)并提供更多信息吗?只需屏蔽private_key
即可。
作为完整性检查,您的JSON密钥中的project_id
是否与my-gcr-project
匹配,我认为(来自您的错误)是aagcp-1205
?