【问题标题】:gcloud run deploy works locally but not in the bitbucket pipelinegcloud run deploy 在本地工作,但不在 bitbucket 管道中
【发布时间】:2020-11-06 00:18:48
【问题描述】:

将 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 不是很有帮助,而且没有意义恕我直言。

【问题讨论】:

  • 你可以尝试删除集群区域参数--cluster-location $GCLOUD_ZONE中的等号=吗?让我知道它是否更好
  • 您能否尝试打印将要运行的整个命令,以确保您的环境变量设置正确?例如。 echo gcloud run deploy importer-controlroom-frontend-$DEPLOYMENT_ENV ...
  • 从您以+ 开头的输出来看,很明显--cluster-location=europe-west3-a 没有进入在bitbucket 上执行的命令。所以相反,它被认为是一个位置参数。我的猜测是因为未定义 bash 变量之一。
  • @guillaumeblaquiere 它可以在没有= 的情况下工作,谢谢!对此有何解释?请添加为答案
  • 一个愚蠢的、常见的 bash 错误!当您为此失去3天时,您将终生记住它! :) :) :)

标签: google-cloud-platform gcloud google-cloud-run


【解决方案1】:

您的错误如下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 值并删除区域值之前的所有空格来解决此问题。从而保持等号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2018-06-03
    • 2018-07-14
    • 2023-02-11
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多