首页 > 解决方案 > gcloud run deploy 在本地工作,但不在 bitbucket 管道中

问题描述

将 web 应用程序部署到 Cloud Run 时,我有两种不同的结果。在本地,它按预期工作。当通过 .yaml 构建文件在 Bitbucket 管道中运行构建时,它会失败。虽然命令是一样的。

这就是我的本地尝试所说的:

gcloud run deploy importer-controlroom-frontend-dev --image=eu.gcr.io/myApp-cluster/importer-controlroom-frontend@sha256:976b7940b3ff62b495a946a0063de0d15d9dd1be2dbb4deab33eed94ff54d7a7 --cpu=100m --memory=64Mi --platform=gke --port=80 --timeout=10 --concurrency=1 --cluster=myApp-cluster-dev --cluster-location=europe-west3-a --connectivity=internal --namespace=dev

Deploying container to Cloud Run for Anthos service [importer-controlroom-frontend-dev] in namespace [dev] of cluster [myApp-cluster-dev]
Deploying new service...
Creating Revision...

在 Bitbucket 中,它看起来像这样:

+ gcloud run deploy importer-controlroom-frontend-$DEPLOYMENT_ENV --image=eu.gcr.io/myApp-cluster/importer-controlroom-frontend:$BITBUCKET_COMMIT --cpu=100m --memory=64Mi --platform=gke --port=80 --timeout=10 --concurrency=1 --cluster=$GCLOUD_CLUSTER --cluster-location=$GCLOUD_ZONE --connectivity=internal --namespace=$DEPLOYMENT_ENV
ERROR: (gcloud.run.deploy) unrecognized arguments: europe-west3-a 
To search the help text of gcloud commands, run:
  gcloud help -- SEARCH_TERMS

使用的版本

Google Cloud SDK 300.0.0 (Bitbucket - there was no higher image tag on Dockerhub)
Google Cloud SDK 301.0.0 (Lokal)

我有点迷茫,因为错误消息unrecognized arguments: europe-west3-a 不是很有帮助,而且没有意义恕我直言。

标签: google-cloud-platformgcloudgoogle-cloud-run

解决方案


您的错误如下ERROR: (gcloud.run.deploy) unrecognized arguments: europe-west3-a

europe-west3-a,论据???奇怪......但是,我做了一个假设:当你调用你的脚本时,你传递了这个参数--cluster-location=$GCLOUD_ZONE。如果$GCLOUD_ZONE开头包含空格,则字符串替换如下

--cluster-location= europe-west3-a

这意味着:“--cluster-location 等于空字符串(等号之后没有任何内容)”和单独的参数“europe-west3-a”。你的错误的原因。

如果删除该=符号,gcloud sdk 将获取下一个可打印字符串,删除前后的所有空格并将其用作参数值。

您还可以通过检查$GCLOUD_ZONE值并删除区域值之前的所有空格来解决此问题。从而保持等号。


推荐阅读