5

我创建了一个 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

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

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

4

2 回答 2

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 。
于 2018-09-01T02:26:59.907 回答
0

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

于 2018-08-31T23:23:40.723 回答