# 使用 .NET 8.0 SDK 作为构建镜像 FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src # 复制项目文件并还原依赖 COPY ["PetWash.Api/PetWash.Api.csproj", "PetWash.Api/"] RUN dotnet restore "PetWash.Api/PetWash.Api.csproj" # 复制所有文件并构建 COPY . . WORKDIR "/src/PetWash.Api" RUN dotnet build "PetWash.Api.csproj" -c Release -o /app/build # 发布应用 FROM build AS publish RUN dotnet publish "PetWash.Api.csproj" -c Release -o /app/publish /p:UseAppHost=false # 使用运行时镜像 FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final WORKDIR /app EXPOSE 80 EXPOSE 443 # 复制发布的文件 COPY --from=publish /app/publish . # 设置环境变量 ENV ASPNETCORE_URLS=http://+:80 ENTRYPOINT ["dotnet", "PetWash.Api.dll"]