# CodePlay Web API Docker 镜像 FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src # 复制项目文件 COPY ["CodePlay.WebAPI/CodePlay.WebAPI.csproj", "CodePlay.WebAPI/"] COPY ["CodePlay.Core/CodePlay.Core.csproj", "CodePlay.Core/"] COPY ["CodePlay.Persistence/CodePlay.Persistence.csproj", "CodePlay.Persistence/"] # 还原依赖 RUN dotnet restore "CodePlay.WebAPI/CodePlay.WebAPI.csproj" # 复制源代码 COPY . . WORKDIR "/src/CodePlay.WebAPI" # 构建 RUN dotnet build "CodePlay.WebAPI.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "CodePlay.WebAPI.csproj" -c Release -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . # 创建日志目录 RUN mkdir -p /app/logs ENTRYPOINT ["dotnet", "CodePlay.WebAPI.dll"]