谷歌应用引擎-运行特定Linux版本的docker镜像



我在谷歌应用引擎中找到了一个新的,并试图将我的ASP.Net Core 3.1 Blazor网站部署到谷歌应用引擎。我使用Docker的自定义构建,因为应用程序引擎还不支持.Net Core 3.1:

应用程序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"]

该网站部署成功,甚至可以正常工作。但我注意到,应用引擎实例在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

终于解决了这个问题。谢谢布雷迪,检查了我的Dockerfile。

我的Dockerfile位于解决方案文件夹中,而不是项目中。因此,每次我将网站发布到GAE时,VisualStudio都会生成临时Dockerfile。生成的Dockerfile包含gcr.io/google-appengine/aspnetcore:3.1image:

FROM gcr.io/google-appengine/aspnetcore:3.1
COPY . /app
WORKDIR /app
ENTRYPOINT ["dotnet", "Blazor_SqLite_Publish.dll"]

这就是为什么,我的docker镜像是基于Ubuntu-16.04 LTS的。

最新更新