使用 Visual Studio 创建的Web应用程序,“启用 Docker”,默认情况下,这会生成一个基于 Debian 的 dockerfile(mcr.microsoft.com/dotnet/aspnetcore:6.0 映像是基于 Debian 的,除非您选择不同的标签),如下所示:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS baseWORKDIR /appEXPOSE 80FROM mcr.microsoft.com/dotnet/sdk:6.0 AS buildWORKDIR /srcCOPY ["WebApplication1.csproj", "."]RUN dotnet restore "./WebApplication1.csproj"COPY . .WORKDIR "/src/."RUN dotnet build "WebApplication1.csproj" -c Release -o /app/buildFROM build AS publishRUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publishFROM base AS finalWORKDIR /appCOPY --from=publish /app/publish .ENTRYPOINT ["dotnet", "WebApplication1.dll"]
如果需要构建基于CentOS的镜像,将dockerfile内容修改如下:
FROM centos:7 AS base# Add Microsoft package repository and install ASP.NET CoreRUN rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm \ && yum install -y aspnetcore-runtime-6.0# Ensure we listen on any IP Address ENV DOTNET_URLS=http://+:5000WORKDIR /app# ... remainder of dockerfile as beforeFROM mcr.microsoft.com/dotnet/sdk:6.0 AS buildWORKDIR /srcCOPY ["WebApplication1.csproj", "."]RUN dotnet restore "./WebApplication1.csproj"COPY . .WORKDIR "/src/."RUN dotnet build "WebApplication1.csproj" -c Release -o /app/buildFROM build AS publishRUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publishFROM base AS finalWORKDIR /appCOPY --from=publish /app/publish .ENTRYPOINT ["dotnet", "WebApplication1.dll"]
构建 Docker 映像,并运行应用程序:
docker build -t centos-test .docker run --rm -p 8000:5000 centos-test
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除