gcloud run jobs部署崩溃,触发TypeError:只能拼接str而非tuple
Cloud Run Jobs源码部署触发gcloud崩溃(TypeError: can only concatenate str (not "tuple") to str)
问题现象
使用gcloud run jobs deploy的--source参数进行源码部署时,gcloud CLI直接崩溃,报错如下:
该命令等效于执行
gcloud builds submit --tag [IMAGE] .和gcloud run jobs deploy surfey-bin --image [IMAGE]
使用Dockerfile构建并将容器部署至项目[surfey]、区域[us-central1]的Cloud Run任务[surfey-bin]
X 构建并更新任务... 构建容器.
OK 上传源码...
OK 构建容器... 日志可查看:[构建日志入口]
任务部署失败
ERROR: gcloud crashed (TypeError): can only concatenate str (not "tuple") to str
如需反馈问题,请执行:gcloud feedback
如需检查gcloud常见问题,请执行:gcloud info --run-diagnostics
执行的完整命令:
gcloud run jobs deploy "surfey-bin" \ --cpu 4 \ --memory 8Gi \ --max-retries 2 \ --project surfey \ --region us-central1 \ --set-env-vars "OPENAI_ORGANIZATION=$OPENAI_ORGANIZATION" \ --set-secrets=OPENAI_API_KEY=OPENAI_API_KEY:latest \ --source . \ --task-timeout 1200
关键细节:
- 构建过程实际成功,Artifact Registry已生成标记为
latest的镜像 - Cloud Run Jobs并未切换使用新构建的镜像,后续镜像因清理规则被移除后触发"image not found"错误
- 直接从Artifact Registry获取镜像地址,执行
gcloud run jobs deploy surfey-bin --image [镜像地址]可正常完成部署 - 本地和Cloud Shell执行相同命令均触发相同错误,
gcloud info --run-diagnostics未检测到异常
环境信息
本地gcloud版本:
$ gcloud --version Google Cloud SDK 474.0.0 alpha 2024.04.26 beta 2024.04.26 bq 2.1.4 bundled-python3-unix 3.11.8 core 2024.04.26 gcloud-crc32c 1.0.0 gke-gcloud-auth-plugin 0.5.8 gsutil 5.27 kubectl 1.26.15 minikube 1.32.0 skaffold 2.11.1
临时解决方案
拆分源码部署的两步操作,手动执行构建和部署:
- 先提交源码构建镜像到Artifact Registry:
gcloud builds submit --tag [你的镜像地址,格式示例:us-central1-docker.pkg.dev/surfey/仓库名/surfey-bin:latest] .
- 再使用构建好的镜像部署Cloud Run Jobs:
gcloud run jobs deploy "surfey-bin" \ --cpu 4 \ --memory 8Gi \ --max-retries 2 \ --project surfey \ --region us-central1 \ --set-env-vars "OPENAI_ORGANIZATION=$OPENAI_ORGANIZATION" \ --set-secrets=OPENAI_API_KEY=OPENAI_API_KEY:latest \ --image [上述构建的镜像地址] \ --task-timeout 1200
内容的提问来源于stack exchange,提问作者Neil C. Obremski
相关产品推荐
相关产品推荐

