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

Ted*_*erg 5 google-cloud-platform .net-core asp.net-core google-cloud-shell

我创建了一个 ASP.NET Core 2.1应用程序,我正在尝试将其部署到Google Cloud Platformdotnet 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
Run Code Online (Sandbox Code Playgroud)

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

编辑:现在我已经安装了谷歌云工具,gcloud app deploy在运行dotnet publish.

sim*_*onz 3

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

同时:

  1. 基于此图像创建一个 docker 文件: 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以及您在上一步中构建的容器注册表中的映像地址。

  • Google Cloud Shell 现在支持 .NET Core 2.1,您应该能够在 Google Cloud Shell 上构建 ASP.NET Core 2.1 代码。 (2认同)