如何在 Google 容器注册表自动生成中从 Google 存储空间中检索素材资源?



我在Google的容器注册表中创建了一个镜像的GitHub存储库,然后创建了一个构建触发器。存储库中的 dockerfile 包含gsutil -m rsync -r gs://asset-bucket/ local-dir/以便我可以将共享私有资产移动到容器中。 但是我得到一个错误:

ServiceException: 401 Anonymous caller does not have storage.objects.list access to asset-bucket

我有一个自动创建的用于构建的服务帐户 (@cloudbuild.gserviceaccount.com(,它具有云容器构建者角色。我尝试添加存储对象查看器,但仍然收到错误。

容器构建器不应该自动拥有适当的权限吗?

您是否使用gcr.io/cloud-builders/gsutil构建步骤来执行此操作?这应该正确使用默认凭据,并且应该正常工作。

steps:
- name: 'gcr.io/cloud-builders/gsutil'
args: [ "-m", "rsync", "gs://asset-bucket/", "local-dir/" ]

或者,您可以尝试GCS提取器。

只是为了具体说明 @david 的答案,特权调用不能在 dockerfile 中发生。我创建了一个如下所示的cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/gsutil'
args: [ "-m", "rsync", "-r", "gs://my-assets/", "." ]
dir: "static"
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/project-name', '.']
images: ['gcr.io/$PROJECT_ID/project-name']

以及包括以下内容的dockerfile

COPY static/* www/

相关内容

  • 没有找到相关文章

最新更新