Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未能将docker映像从GCE实例上的Jenkins推送到google容器注册表_Docker_Jenkins_Google Cloud Platform_Google Container Registry - Fatal编程技术网

未能将docker映像从GCE实例上的Jenkins推送到google容器注册表

未能将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:无法推送映像:未经授权:您没有执行此操作所需的权限,并且您可能具有无效凭据。要验证您的请求,请按照中的步骤进行操作: 我需要做什么?在链接的页面底部,您将看到进

我正在尝试使用默认服务帐户从计算引擎上配置的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


您需要运行此命令一次,以对容器注册表进行身份验证。我们强烈建议您尽可能使用此方法。它提供对项目资源的安全、短期访问。请按照链接中的步骤操作。

按照上述步骤操作。仍然面临同样的问题。