Развертывание Google Cloud Run не работает с помощью `gcloud` SDK CLI - PullRequest
5 голосов
/ 05 ноября 2019

У меня есть служба, созданная в Google Cloud, которую я могу развернуть вручную через пользовательский интерфейс Google Cloud Console, используя изображение в реестре контейнера. Но развертывание из 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

Я использую многоступенчатую сборку докеров. Вот мой 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

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Это была ошибка в Cloud Run. Это было исправлено, и развертывание с CLI работает для меня сейчас. Вот ссылка на проблему, поднятую мной в Google Cloud, на которую есть ответ https://issuetracker.google.com/issues/144069696.

2 голосов
/ 07 ноября 2019

У меня была такая же проблема, и я предполагаю, что это потому, что у меня было более раннее развертывание Cloud Run, которое было создано до того, как я запустил gcloud components update после некоторого обновления.

Я смог исправить это, удалив всеСервис Cloud Run (через GUI) и его повторное развертывание с нуля (через терминал). Я заметил, что определение ports: исчезло из YAML, как только я это сделал.

После этого я мог нормально выполнять развертывания.

...