我如何在 Cloud Build 中 运行 beta gcloud 组件,例如 "gcloud beta artifacts docker images scan"?
How can I run beta gcloud component like "gcloud beta artifacts docker images scan" within Cloud Build?
我正在尝试在 Cloud Build 中包含 Container Analyis API link pipeline.This 是测试版组件,我需要先安装命令行:
gcloud components install beta local-extract
然后我可以 运行 按需容器分析(如果容器在本地):
gcloud beta artifacts docker images scan ubuntu:latest
我的问题是如何在 Cloud Build 中使用像 beta local-extract 这样的组件?
我尝试迈出第一步并安装缺少的组件L
## Update components
- name: 'gcr.io/cloud-builders/gcloud'
args: ['components', 'install', 'beta', 'local-extract', '-q']
id: Update component
但是我一进入下一步,更新就消失了(因为它不在容器中)
我也尝试安装该组件,然后 运行 使用(& 或 ;)进行扫描,但它失败了:
## Run vulnerability scan
- name: 'gcr.io/cloud-builders/gcloud'
args: ['components', 'install', 'beta', 'local-extract', '-q', ';', 'gcloud', 'beta', 'artifacts', 'docker', 'images', 'scan', 'ubuntu:latest', '--location=europe']
id: Run vulnaribility scan
我得到:
Already have image (with digest): gcr.io/cloud-builders/gcloud
ERROR: (gcloud.components.install) unrecognized arguments:
;
gcloud
beta
artifacts
docker
images
scan
ubuntu:latest
--location=europe (did you mean '--project'?)
To search the help text of gcloud commands, run:
gcloud help -- SEARCH_TERMS
所以我的问题是:
- 如何在 Cloud Build 中 运行“gcloud beta 工件 docker 图像扫描 ubuntu:latest”?
- 奖励:从上一个命令我怎样才能得到我需要作为参数传递给我下一步的“扫描”输出值? (我猜应该是 --format 的东西)
你应该试试 cloud-sdk
docker 图片:
https://github.com/GoogleCloudPlatform/cloud-sdk-docker
Cloud Build 团队(隐含地?)推荐它:
https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcloud
使用 cloud-sdk-docker
容器,您可以将入口点更改为 bash
管道 gcloud
命令。这是一个(丑陋的)例子:
关于你的奖金问题。是的,--format=value(the.name.of.the.field)
可能就是您想要的。诀窍是知道字段的名称。我通常在我的开发工作站上以 --format=json
开头来找出名称。
问题来自Cloud Build。它缓存了一些经常使用的图像,如果你想在 GCLOUD CLI 中使用一个全新的功能,缓存可能太旧了。
今晚测试了一下,缓存中的版本是326。 328 刚刚发布。所以,缓存版本有 2 周的历史,对于您的功能来说可能太旧了。您所在地区的情况可能更糟!
解决此问题的方法是明确请求最新版本。
转到这个urlgcr.io/cloud-builders/gcloud
复制最新版本
在 Cloud Build 管道的步骤中粘贴完整的版本名称。
副作用是构建时间更长。事实上,因为这个最新的图像没有被缓存,它必须在 Cloud Build 中下载。
我正在尝试在 Cloud Build 中包含 Container Analyis API link pipeline.This 是测试版组件,我需要先安装命令行:
gcloud components install beta local-extract
然后我可以 运行 按需容器分析(如果容器在本地):
gcloud beta artifacts docker images scan ubuntu:latest
我的问题是如何在 Cloud Build 中使用像 beta local-extract 这样的组件?
我尝试迈出第一步并安装缺少的组件L
## Update components
- name: 'gcr.io/cloud-builders/gcloud'
args: ['components', 'install', 'beta', 'local-extract', '-q']
id: Update component
但是我一进入下一步,更新就消失了(因为它不在容器中)
我也尝试安装该组件,然后 运行 使用(& 或 ;)进行扫描,但它失败了:
## Run vulnerability scan
- name: 'gcr.io/cloud-builders/gcloud'
args: ['components', 'install', 'beta', 'local-extract', '-q', ';', 'gcloud', 'beta', 'artifacts', 'docker', 'images', 'scan', 'ubuntu:latest', '--location=europe']
id: Run vulnaribility scan
我得到:
Already have image (with digest): gcr.io/cloud-builders/gcloud
ERROR: (gcloud.components.install) unrecognized arguments:
;
gcloud
beta
artifacts
docker
images
scan
ubuntu:latest
--location=europe (did you mean '--project'?)
To search the help text of gcloud commands, run:
gcloud help -- SEARCH_TERMS
所以我的问题是:
- 如何在 Cloud Build 中 运行“gcloud beta 工件 docker 图像扫描 ubuntu:latest”?
- 奖励:从上一个命令我怎样才能得到我需要作为参数传递给我下一步的“扫描”输出值? (我猜应该是 --format 的东西)
你应该试试 cloud-sdk
docker 图片:
https://github.com/GoogleCloudPlatform/cloud-sdk-docker
Cloud Build 团队(隐含地?)推荐它:
https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcloud
使用 cloud-sdk-docker
容器,您可以将入口点更改为 bash
管道 gcloud
命令。这是一个(丑陋的)例子:
关于你的奖金问题。是的,--format=value(the.name.of.the.field)
可能就是您想要的。诀窍是知道字段的名称。我通常在我的开发工作站上以 --format=json
开头来找出名称。
问题来自Cloud Build。它缓存了一些经常使用的图像,如果你想在 GCLOUD CLI 中使用一个全新的功能,缓存可能太旧了。
今晚测试了一下,缓存中的版本是326。 328 刚刚发布。所以,缓存版本有 2 周的历史,对于您的功能来说可能太旧了。您所在地区的情况可能更糟!
解决此问题的方法是明确请求最新版本。
转到这个url
gcr.io/cloud-builders/gcloud
复制最新版本
在 Cloud Build 管道的步骤中粘贴完整的版本名称。
副作用是构建时间更长。事实上,因为这个最新的图像没有被缓存,它必须在 Cloud Build 中下载。