【发布时间】:2020-04-26 18:08:18
【问题描述】:
我是 Google App Engine 的新成员,并试图将我的 ASP.Net Core 3.1 Blazor 网站部署到 Google App Engine。我使用 Docker 的自定义构建,因为 App Engine 还不支持 .Net Core 3.1:
App.yaml
runtime: custom
env: flex
Dockerfile # 由 Visual Studio 生成
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1.3-bionic AS base
WORKDIR /app
EXPOSE 8080
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1.201-bionic AS build
WORKDIR /src
COPY ["Blazor_SqLite_Publish/Blazor_SqLite_Publish.csproj", "Blazor_SqLite_Publish/"]
RUN dotnet restore "Blazor_SqLite_Publish/Blazor_SqLite_Publish.csproj"
COPY . .
WORKDIR "/src/Blazor_SqLite_Publish"
RUN dotnet build "Blazor_SqLite_Publish.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Blazor_SqLite_Publish.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Blazor_SqLite_Publish.dll"]
网站部署成功,甚至可以正常工作。但我注意到,App Engine 实例在 Ubuntu-16.04.6 LTS 上运行我的 docker 映像:
root@xxxxxxxxxxx:/app# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
但我期待 Ubuntu-18.04 LTS。
如何将 Ubuntu-16.04.6 LTS 版本更改为 Ubuntu-18.04 LTS?
【问题讨论】:
-
我的实例使用 Ubuntu 18.04 运行。我复制了你的 Dockerfile,改为使用 Hello World code。并将 HelloWorld.csproj 上的运行时更改为 3.1。并将 HelloWord yaml 更新为自定义。
标签: docker google-app-engine dockerfile instance asp.net-core-3.1