Сбой сборки приложения .NET Core 2.1 в Google Cloud Shell

Я создал приложение ASP.NET Core 2.1, которое пытаюсь развернуть на Google Cloud Platform. Он отлично работает с dotnet build локально.

Однако я не могу создать его через Google Cloud Shell. Запуск dotnet --version подтверждает, что в Google Cloud Shell установлено .NET Core 2.0.

Запуск gcloud app deploy инициирует развертывание приложения, но в журнале появляется загадочная ошибка:

Шаг № 0: Статус: загружен новый образ для gcr.io/gcp-runtimes/aspnetcorebuild@sha256:ad1b788a9b4cca75bb61eb523ef358ca059c4bd208fba15a10ccc6acab83f49a

Шаг №0: для приложения не найден файл .deps.json. Завершено. Шаг №0.

ОШИБКА: шаг сборки 0 "gcr.io/gcp-runtimes/aspnetcorebuild@sha256:ad1b788a9b4cca75bb61eb523ef358ca059c4bd208fba15a10ccc6acab83f49a" не удалось: статус выхода 1

У меня создалось впечатление, что GCP по умолчанию поддерживает контейнеры .NET Core 2.1, поэтому я не включил Dockerfile.

Я пытаюсь выполнить развертывание в гибкой среде, вот мой app.yaml файл:

runtime: aspnetcore
env: flex

Нужно ли мне создавать собственный контейнер Docker? Или есть другой способ получить поддержку .NET Core 2.1 в Google Cloud Shell?

Изменить: на данный момент я установил Google Cloud Tools для локального запуска gcloud app deploy в оболочке после запуска dotnet publish.


person Ted Nyberg    schedule 25.08.2018    source источник
comment
Публикуется ли он локально?   -  person Mark Redman    schedule 31.08.2018
comment
Да, локально он работает нормально, поэтому контейнер работает должным образом. Но я не могу создать приложение через Cloud Shell.   -  person Ted Nyberg    schedule 03.09.2018


Ответы (2)


Я попытался воспроизвести его - действительно, Cloud Shell поддерживает только .NET Core 2.0. Я поднял этот вопрос с соответствующими инженерами, поэтому образ Cloud Shell обновлен для поддержки .NET Core 2.1.

В это время:

  1. Создайте файл докера на основе этого образа: gcr.io/google-appengine/aspnetcore:2.1
  2. Попробуйте использовать отправку сборок gcloud для сборки картинка. Когда вы запускаете сборки gcloud, отправляйте для в первый раз будет предложено включить Cloud Build API. Утвердите это. Это не будет использовать локальную команду docker build (например, CloudShell), а скорее отправит ваши артефакты для сборки с помощью Cloud Build и помещен в реестр контейнеров.
  3. Разверните в AppEngine Flex с помощью развертывания приложения gcloud , указав --image-url с адресом изображения из реестра контейнеров, который вы создали на предыдущем шаге.
person simonz    schedule 01.09.2018
comment
Google Cloud Shell теперь поддерживает .NET Core 2.1, вы должны иметь возможность создавать код ASP.NET Core 2.1 в Google Cloud Shell. - person simonz; 14.09.2018
comment
А что насчет 3.1? - person Aamir Mulla; 20.03.2020

Помните, что Microsoft переключается с aspnetcore на dotnet в образе ядра dotnet.
https://hub.docker.com/r/microsoft/dotnet/

person Jensen    schedule 31.08.2018