未能将docker映像从GCE实例上的Jenkins推送到google容器注册表
我正在尝试使用默认服务帐户从计算引擎上配置的jenkins推送docker映像。但它因以下错误而失败: [Docker]错误:无法推送映像gcr.io/project id/sms impl:工作错误:生成步骤失败,出现异常com.github.dockerjava.api.exception.DockerClientException:无法推送映像:未经授权:您没有执行此操作所需的权限,并且您可能具有无效凭据。要验证您的请求,请按照中的步骤进行操作:未能将docker映像从GCE实例上的Jenkins推送到google容器注册表,docker,jenkins,google-cloud-platform,google-container-registry,Docker,Jenkins,Google Cloud Platform,Google Container Registry,我正在尝试使用默认服务帐户从计算引擎上配置的jenkins推送docker映像。但它因以下错误而失败: [Docker]错误:无法推送映像gcr.io/project id/sms impl:工作错误:生成步骤失败,出现异常com.github.dockerjava.api.exception.DockerClientException:无法推送映像:未经授权:您没有执行此操作所需的权限,并且您可能具有无效凭据。要验证您的请求,请按照中的步骤进行操作: 我需要做什么?在链接的页面底部,您将看到进
我需要做什么?在链接的页面底部,您将看到进一步的链接,特别是描述您需要做什么的链接 总而言之,服务帐户需要权限写入GCR的存储桶。由于您提到您使用的是默认服务帐户,因此它还需要该实例的设置。除非指定了所有作用域,否则默认值仅授予“读取” 有几种方法可以做到这一点:
- 使用gcloud创建实例时,请指定
--scopeshttps://www.googleapis.com/auth/devstorage.read_write
- 在控制台中,具体选择范围或选择“所有范围”,例如:
请注意,项目的第一次推送可能还需要“管理员”权限,以便创建bucket。要对容器注册表进行身份验证,请使用gcloud作为Docker凭据帮助器。为此,请运行以下命令: gcloud auth配置docker
您需要运行此命令一次,以对容器注册表进行身份验证。我们强烈建议您尽可能使用此方法。它提供对项目资源的安全、短期访问。请按照链接中的步骤操作。按照上述步骤操作。仍然面临同样的问题。