5

我在 Google Cloud 运行上创建了一项服务,我可以使用 Container Registry 上的图像通过 Google Cloud Console UI 手动部署该服务。但是从 CLI 部署失败。这是我正在使用的命令和我得到的错误。我无法理解我所缺少的:

$ 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: 我已经使用 更新了 SDK gcloud components update,但我仍然遇到同样的问题

这是我的 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

4

2 回答 2

2

我遇到了同样的问题,我认为这是因为我有较旧的 Cloud Run 部署,该部署是在gcloud components update某些更新后运行之前创建的。

我能够通过删除整个 Cloud Run 服务(通过 GUI)并再次从头开始部署(通过终端)来修复它。我注意到,ports:一旦我这样做了,YAML 中的定义就消失了。

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

于 2019-11-07T12:56:00.410 回答
2

这是 Cloud Run 中的一个错误。它已得到修复,现在使用 CLI 进行部署对我有用。这是我向 Google Cloud 提出的问题的链接,其中有他们的回复https://issuetracker.google.com/issues/144069696

于 2019-11-08T11:52:32.653 回答