diff --git a/PetWash.Api/Dockerfile b/PetWash.Api/Dockerfile index a26578f..b513e87 100644 --- a/PetWash.Api/Dockerfile +++ b/PetWash.Api/Dockerfile @@ -1,30 +1,26 @@ -# 使用 .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 ["PetWash.Api.csproj", "."] +RUN dotnet restore -# 复制所有文件并构建 +# 复制所有源代码并发布 COPY . . -WORKDIR "/src/PetWash.Api" -RUN dotnet build "PetWash.Api.csproj" -c Release -o /app/build +RUN dotnet publish -c Release -o /app -# 发布应用 -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 +# 运行时阶段 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /app EXPOSE 80 EXPOSE 443 -# 复制发布的文件 -COPY --from=publish /app/publish . +# 复制发布文件 +COPY --from=build /app . # 设置环境变量 +ENV ASPNETCORE_ENVIRONMENT=Production ENV ASPNETCORE_URLS=http://+:80 ENTRYPOINT ["dotnet", "PetWash.Api.dll"]