如何在shell脚本中以编程方式更新gcloud组件?
调用gcloud components update
需要用户输入,例如:
$ gcloud components update
The following components will be installed:
--------------------------------------------
| kubectl (Linux, x86_64) | 1.0.1 | 4.5 MB |
--------------------------------------------
For the latest release notes, please visit:
https://dl.google.com/dl/cloudsdk/release/RELEASE_NOTES
Do you want to continue (Y/n)?
我无法找到gcloud强制更新的论据。
答案 0 :(得分:17)
您正在寻找--quiet
旗帜。
来自gcloud --help
:
--quiet, -q
Disable all interactive prompts when running gcloud commands. If input
is required, defaults will be used, or an error will be raised.
这通常是您想要用于非交互式上下文的标志。
您也可以将CLOUDSDK_CORE_DISABLE_PROMPTS
环境变量设置为非空值:
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
gcloud components update # This works for all gcloud commands
答案 1 :(得分:0)
如果在持续集成(CI)服务器上运行gcloud命令时遇到此问题,则可以尝试使用已包含所需组件的Docker映像来运行。因此,您可以避免更新gcloud组件。
例如,如果您尝试运行gcloud beta firebase test android run
,则可以使用image: google/cloud-sdk:latest
,因为在https://github.com/GoogleCloudPlatform/cloud-sdk-docker处,它显示:latest包含gcloud Beta命令。
我在Gitlab托管的CI(.gitlab-ci.yml)上进行了测试,并且可以正常工作。