From 2c7f706c4d6514ffdea3e0b95ecdb2bc6e3056f1 Mon Sep 17 00:00:00 2001 From: xyy <544939200@qq.com> Date: Tue, 3 Mar 2026 18:47:05 +0800 Subject: [PATCH] --- PetWash.Api/Dockerfile | 52 +++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/PetWash.Api/Dockerfile b/PetWash.Api/Dockerfile index a26578f..3f8b6b3 100644 --- a/PetWash.Api/Dockerfile +++ b/PetWash.Api/Dockerfile @@ -1,30 +1,30 @@ -# 使用 .NET 8.0 SDK 作为构建镜像 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -WORKDIR /src +# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。 -# 复制项目文件并还原依赖 -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 +# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER $APP_UID WORKDIR /app -EXPOSE 80 -EXPOSE 443 +EXPOSE 8080 +EXPOSE 8081 -# 复制发布的文件 + +# 此阶段用于生成服务项目 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["PetWash.Api.csproj", "."] +RUN dotnet restore "./PetWash.Api.csproj" +COPY . . +WORKDIR "/src/." +RUN dotnet build "./PetWash.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# 此阶段用于发布要复制到最终阶段的服务项目 +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./PetWash.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) +FROM base AS final +WORKDIR /app COPY --from=publish /app/publish . - -# 设置环境变量 -ENV ASPNETCORE_URLS=http://+:80 - -ENTRYPOINT ["dotnet", "PetWash.Api.dll"] +ENTRYPOINT ["dotnet", "PetWash.Api.dll"] \ No newline at end of file