Asp.net core 在Google App Engine上运行最新的ASP.NET核心版本
我最近一直在开发一个.net core 2.0 web应用程序,并考虑在Google cloud上使用Google的应用程序引擎来托管它,但根据教程,Google cloud使用的.net core 1.0不支持我的项目。Asp.net core 在Google App Engine上运行最新的ASP.NET核心版本,asp.net-core,google-cloud-platform,Asp.net Core,Google Cloud Platform,我最近一直在开发一个.net core 2.0 web应用程序,并考虑在Google cloud上使用Google的应用程序引擎来托管它,但根据教程,Google cloud使用的.net core 1.0不支持我的项目。 我可以在云上运行使用较新sdk制作的应用程序吗?您可以将应用程序部署为自包含应用程序,然后在未安装运行时的情况下运行 它在ASP.NET核心文档中有很好的描述 它归结为向csproj文件中添加或元素 <PropertyGroup> <RuntimeI
我可以在云上运行使用较新sdk制作的应用程序吗?您可以将应用程序部署为自包含应用程序,然后在未安装运行时的情况下运行 它在ASP.NET核心文档中有很好的描述 它归结为向csproj文件中添加
或
元素
<PropertyGroup>
<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
自部署将从nuget下载所有必要的文件,包括.NET核心运行时,并将其放入输出文件夹 您可以将应用程序部署为自包含应用程序,然后可以在未安装运行时的情况下运行它 它在ASP.NET核心文档中有很好的描述 它归结为向csproj文件中添加
或
元素
<PropertyGroup>
<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
自部署将从nuget下载所有必要的文件,包括.NET核心运行时,并将其放入输出文件夹 遗憾的是,教程已经过时了。我们现在每天都有.NETCore1.0、1.1和2.0的运行时映像。我们正在检查文档并修复它,但这需要一段时间 根据此更新中的说明,您将需要一个最小的app.yaml,类似于:
env: flex
runtime: aspnetcore
然后,从项目的根目录运行:
dotnet restore
dotnet publish -c Release
将app.yaml复制到发布过程的输出,通常是bin\Release\netcore2.0\publish
,然后使用以下内容部署应用程序:
gcloud beta app deploy bin\Release\netcore2.0\publish\app.yaml
此命令将检测您正在使用的.NET Core版本,并为您构建适当的Docker映像
请注意,AppEngine Flexible中的.NET核心支持仍处于测试阶段,我们正在努力工作,以便尽快进入GA。遗憾的是,教程已经过时。我们现在每天都有.NETCore1.0、1.1和2.0的运行时映像。我们正在检查文档并修复它,但这需要一段时间 根据此更新中的说明,您将需要一个最小的app.yaml,类似于:
env: flex
runtime: aspnetcore
然后,从项目的根目录运行:
dotnet restore
dotnet publish -c Release
将app.yaml复制到发布过程的输出,通常是bin\Release\netcore2.0\publish
,然后使用以下内容部署应用程序:
gcloud beta app deploy bin\Release\netcore2.0\publish\app.yaml
此命令将检测您正在使用的.NET Core版本,并为您构建适当的Docker映像
请注意,AppEngine Flexible中的.NET核心支持仍处于测试阶段,我们正在努力工作,以便尽快进入GA。第1部分
确保您有以下两个文件
- app.yaml
- Dockerfile
env: flex
runtime: custom
Dockerfile
FROM [DOCKER_IMAGE_URL]
COPY . /app
WORKDIR /app
EXPOSE 8080
ENV ASPNETCORE_URLS=http://*:8080
ENTRYPOINT ["dotnet", "[NAME_OF_PROJECT].dll"]
请记住将[NAME\u OF_PROJECT]
替换为您的项目名称,并将[DOCKER\u IMAGE\u URL]
替换为以下URL之一:
例如:mcr.microsoft.com/dotnet/core/aspnet:3.0
用于ASP.NET core 3.0
第二部分
为了使我们在第1部分中创建的文件投入使用,需要在运行build命令时将它们复制到output/build目录
这可以通过添加以下内容来实现
<ItemGroup>
<None Include="app.yaml" CopyToOutputDirectory="PreserveNewest" />
<None Include="Dockerfile" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
到您的.csproj
文件
现在,当我们运行build命令时,它们将被复制到发布版本的/bin/Release/netcoreapp[VERSION]/publish
,调试版本的/bin/Debug/netcoreapp[VERSION]
其中[VERSION]
是您正在使用的ASP.NET核心版本
第三部分
从这里开始,使用googlecloudsdk进行部署
感谢: 第一部分 确保您有以下两个文件
- app.yaml
- Dockerfile
env: flex
runtime: custom
Dockerfile
FROM [DOCKER_IMAGE_URL]
COPY . /app
WORKDIR /app
EXPOSE 8080
ENV ASPNETCORE_URLS=http://*:8080
ENTRYPOINT ["dotnet", "[NAME_OF_PROJECT].dll"]
请记住将[NAME\u OF_PROJECT]
替换为您的项目名称,并将[DOCKER\u IMAGE\u URL]
替换为以下URL之一:
例如:mcr.microsoft.com/dotnet/core/aspnet:3.0
用于ASP.NET core 3.0
第二部分
为了使我们在第1部分中创建的文件投入使用,需要在运行build命令时将它们复制到output/build目录
这可以通过添加以下内容来实现
<ItemGroup>
<None Include="app.yaml" CopyToOutputDirectory="PreserveNewest" />
<None Include="Dockerfile" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
到您的.csproj
文件
现在,当我们运行build命令时,它们将被复制到发布版本的/bin/Release/netcoreapp[VERSION]/publish
,调试版本的/bin/Debug/netcoreapp[VERSION]
其中[VERSION]
是您正在使用的ASP.NET核心版本
第三部分
从这里开始,使用googlecloudsdk进行部署
感谢: