`#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
基于Net 5
默认生成
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN buildDeps=’ libgdiplus gss-ntlmssp libicu63 libicu-dev apt-transport-https ’ set -x && apt-get clean && apt-get update && apt-get install -y --no-install-recommends && apt-get clean && rm -rf /var/lib/apt/lists/*
#RUN apt-get update && apt-get install -y libgdiplus && apt-get clean
EXPOSE 9012
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY [“WebDockerTest/WebDockerTest.csproj”, “WebDockerTest/”]
COPY [“MyExtend/MyExtend.csproj”, “MyExtend/”]
RUN dotnet restore “WebDockerTest/WebDockerTest.csproj”
COPY . .
WORKDIR “/src/WebDockerTest”
RUN dotnet build “WebDockerTest.csproj” -c Release -o /app/build
FROM build AS publish
RUN dotnet publish “WebDockerTest.csproj” -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT [“dotnet”, “WebDockerTest.dll”]`
有项目引用,需要将Docker放到解决方案层执行
##优化后
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS publish
WORKDIR /src
COPY . .
WORKDIR “/src//WebDockerTest”
RUN dotnet publish “WebDockerTest.csproj” -c Release -o /app/publish
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS final
WORKDIR /app
COPY --from=publish /app/publish .
EXPOSE 80
ENTRYPOINT [“dotnet”, “WebDockerTest.dll”]