使用`gcloud` SDK CLI进行Google Cloud Run部署未能正常工作

5

我在Google Cloud Run上创建了一个服务,可以使用容器仓库中的映像通过Google Cloud Console UI手动部署。但是从命令行界面部署失败了。以下是我正在使用的命令和错误信息,我无法理解我缺少了什么:

$ gcloud beta run deploy service-name --platform managed --region region-name --image image-url
Deploying container to Cloud Run service [service-name] in project [project-name] region [region-name]
X Deploying...
  . Creating Revision...
  . Routing traffic...
Deployment failed
ERROR: (gcloud.beta.run.deploy) INVALID_ARGUMENT: The request has errors
- '@type': type.googleapis.com/google.rpc.BadRequest
  fieldViolations:
  - description: spec.revisionTemplate.spec.container.ports should be empty
    field: spec.revisionTemplate.spec.container.ports

更新1: 我已使用gcloud components update更新了SDK,但仍然存在同样的问题。

这是我的SDK版本:

$gcloud version
Google Cloud SDK 270.0.0
beta 2019.05.17
bq 2.0.49
core 2019.11.04
gsutil 4.46

我正在使用多阶段Docker构建。这是我的Dockerfile:

FROM custom-dev-image

COPY . /project_dir
WORKDIR /project_dir
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
  /usr/local/bin/go build -a \
  -ldflags '-w -extldflags "-static"' \
  -o /root/go/bin/executable ./cmds/project/main.go

FROM alpine:3.10
ENV GIN_MODE=release APP_NAME=project_name
COPY --from=0 /root/go/bin/executable /usr/local/bin/
CMD executable


1
你能分享gcloud SDK的版本号 gcloud version 吗?你能分享一下你的Dockerfile吗? - guillaume blaquiere
1
您需要更新CLI gcloud components update - John Hanley
1
@pcx 我通过在Cloud Run中重新创建服务,然后再次运行部署来解决问题。似乎是Cloud Run服务的某些问题。 - Juk
1
在这里遇到了同样的问题。 - Hady Rashwan
1
@Juk,我在官方跟踪器中开了一个问题,链接在这里https://issuetracker.google.com/issues/144069696。请添加任何有用的信息到这个问题中。谢谢! - pcx
显示剩余8条评论
2个回答

2

我曾经遇到过同样的问题,我猜测这是因为在某次更新之前,我创建了一个较旧的Cloud Run部署,并且没有运行gcloud components update

我通过删除整个Cloud Run服务(通过GUI)并再次从头部署它(通过终端)来解决此问题。我注意到一旦这样做,ports:定义就会消失。

此后,我可以正常进行部署。


现在我面临这个问题:正在创建修订版本………………中断 部署失败 错误:(gcloud.beta.run.deploy)资源准备就绪期限已超过。我不确定‘gcloud beta run deploy’的超时是否是原因?但是当我重新运行它时,它可以正常工作,听起来很奇怪。 - Juk
谢谢。同样的修复方法对我也起作用了。在删除并重新创建服务后,我现在可以通过gcloud CLI推送Cloud Run服务的新版本。 - Jonathan Fuerth

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接