From 66c8049c64587f2f743733ccaed70b6d91aa7a22 Mon Sep 17 00:00:00 2001 From: fanfpy Date: Thu, 17 Jul 2025 10:31:58 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E4=BC=98=E5=8C=96Dockerfile=E4=BB=A5?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=A4=9A=E9=98=B6=E6=AE=B5=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构用户服务和推荐服务的Dockerfile,采用多阶段构建方式 - 添加构建阶段以减少最终镜像大小 - 分离SDK和运行时镜像以提高安全性 - 使用发布输出而非源代码作为运行时输入 --- services/recommend-service/Dockerfile | 13 ++++++++++++- services/user-service/Dockerfile | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/services/recommend-service/Dockerfile b/services/recommend-service/Dockerfile index d7289c6..d7ee725 100644 --- a/services/recommend-service/Dockerfile +++ b/services/recommend-service/Dockerfile @@ -1,5 +1,16 @@ +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["AriStockAI.Recommend.csproj", "./"] +RUN dotnet restore "./AriStockAI.Recommend.csproj" +COPY . . +WORKDIR "/src/" +RUN dotnet build "AriStockAI.Recommend.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "AriStockAI.Recommend.csproj" -c Release -o /app/publish + FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app -COPY . . +COPY --from=publish /app/publish . EXPOSE 8003 ENTRYPOINT ["dotnet", "AriStockAI.Recommend.dll"] \ No newline at end of file diff --git a/services/user-service/Dockerfile b/services/user-service/Dockerfile index fe1b47c..543dc36 100644 --- a/services/user-service/Dockerfile +++ b/services/user-service/Dockerfile @@ -1,5 +1,16 @@ +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["AriStockAI.User.csproj", "./"] +RUN dotnet restore "./AriStockAI.User.csproj" +COPY . . +WORKDIR "/src/" +RUN dotnet build "AriStockAI.User.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "AriStockAI.User.csproj" -c Release -o /app/publish + FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app -COPY . . +COPY --from=publish /app/publish . EXPOSE 8004 ENTRYPOINT ["dotnet", "AriStockAI.User.dll"] \ No newline at end of file