GCP Cloud Build传递BUILD_ID至Bash脚本失败,求解决方案
解决GCP Cloud Build传递BUILD_ID参数失败的问题
错误原因
你当前的配置把脚本路径和参数放在同一个args字符串里,Cloud Build会将整个字符串作为单个命令传给bash,导致bash误以为要执行一个名为./my_script.sh [BUILD_ID值]的文件,自然找不到对应的文件。
两种正确的配置方式
方式一:使用bash -c执行命令字符串
通过bash -c参数来执行完整的命令行,让环境变量${BUILD_ID}被正确解析:
steps: - name: 'gcr.io/cloud-builders/gcloud' entrypoint: 'bash' args: ['-c', './my_script.sh ${BUILD_ID}']
方式二:拆分args为数组元素
将脚本路径和参数分别作为args数组的独立元素,Cloud Build会自动替换环境变量$BUILD_ID为实际值:
steps: - name: 'gcr.io/cloud-builders/gcloud' entrypoint: 'bash' args: ['./my_script.sh', '$BUILD_ID']
这两种方式都能正确将BUILD_ID作为参数传递给my_script.sh,其中方式二更符合Cloud Build的参数传递规范,推荐使用。
内容的提问来源于stack exchange,提问作者user1502505
相关产品推荐
相关产品推荐

