在Google Cloud Shell中构建.NET Core 2.1应用程序失败

问题描述 投票:3回答:2

我创建了一个我正在尝试部署到Google Cloud Platform的ASP.NET Core 2.1应用程序。它在本地使用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:找不到应用程序完成步骤#0的.deps.json文件

错误:构建步骤0“gcr.io/gcp-runtimes/aspnetcorebuild@sha256:ad1b788a9b4cca75bb61eb523ef358ca059c4bd208fba15a10ccc6acab83f49a”失败:退出状态1

我的印象是GCP默认支持.NET Core 2.1容器,所以我没有包含Dockerfile。

我正在尝试部署到灵活的环境,这是我的app.yaml文件:

runtime: aspnetcore
env: flex

我是否需要创建自定义Docker容器?或者是否有其他方法可以在Google Cloud Shell中获得对.NET Core 2.1的支持?

编辑:目前我已经安装了Google Cloud Tools,在运行gcloud app deploy后在本地运行dotnet publish

asp.net-core .net-core google-cloud-platform google-cloud-shell
2个回答
3
投票

我试图重现它 - 事实上,Cloud Shell仅支持.NET Core 2.0。我已经与合适的工程师提出了这一点,因此更新了Cloud Shell映像以支持.NET Core 2.1。

同时:

  1. 根据此图像创建一个泊坞窗文件:gcr.io/google-appengine/aspnetcore:2.1
  2. 尝试使用gcloud builds submit来构建图像。当您第一次运行gcloud builds submit时,它会要求启用Cloud Build API。批准。这不会使用本地(即CloudShell的)docker build命令,而是提交由Cloud Build构建并推送到容器注册表的工件。
  3. 使用gcloud app deploy部署到AppEngine Flex,在上一步中构建它时,使用容器注册表中的映像地址指定--image-url。

0
投票

请记住,Microsoft在dotnet核心映像上从aspnetcore切换到dotnet。 https://hub.docker.com/r/microsoft/dotnet/

© www.soinside.com 2019 - 2024. All rights reserved.