From f8775856a11709f84fed4f0c2288198fc1043450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D1=8F=20=D0=91=D0=B8=D0=B7=D1=8E=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0?= Date: Fri, 24 Jan 2025 01:06:12 +0500 Subject: [PATCH] dockerfile --- DD.Persistence.App/Dockerfile | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/DD.Persistence.App/Dockerfile b/DD.Persistence.App/Dockerfile index 015ce03..1a71dfd 100644 --- a/DD.Persistence.App/Dockerfile +++ b/DD.Persistence.App/Dockerfile @@ -1,24 +1,50 @@ #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base USER app WORKDIR /app EXPOSE 8080 EXPOSE 8081 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build ARG BUILD_CONFIGURATION=Release +ARG PUBLISHERPASSWORD + +# 1. Настраиваем рабочую директорию WORKDIR /src + +# 2. Добавляем приватный NuGet-репозиторий +#RUN dotnet nuget add source \ + #--name gitea \ + #--username publisher \ + #--password $PUBLISHERPASSWORD \ + #--store-password-in-clear-text \ + #https://git.ddrilling.ru/api/packages/DDrilling/nuget/index.json + +# 3. Копируем csproj-файлы и восстанавливаем пакеты COPY ["DD.Persistence.App/DD.Persistence.App.csproj", "DD.Persistence.App/"] +COPY ["DD.Persistence.API/DD.Persistence.API.csproj", "DD.Persistence.API/"] +COPY ["DD.Persistence/DD.Persistence.csproj", "DD.Persistence/"] +COPY ["DD.Persistence.Database/DD.Persistence.Database.csproj", "DD.Persistence.Database/"] +COPY ["DD.Persistence.Database.Postgres/DD.Persistence.Database.Postgres.csproj", "DD.Persistence.Database.Postgres/"] +COPY ["DD.Persistence.Models/DD.Persistence.Models.csproj", "DD.Persistence.Models/"] +COPY ["DD.Persistence.Repository/DD.Persistence.Repository.csproj", "DD.Persistence.Repository/"] + RUN dotnet restore "./DD.Persistence.App/DD.Persistence.App.csproj" + +# 4. Копируем *всё* оставшееся (код и т. п.) COPY . . + +# 5. Собираем WORKDIR "/src/DD.Persistence.App" RUN dotnet build "./DD.Persistence.App.csproj" -c $BUILD_CONFIGURATION -o /app/build +# ---------- Публикация приложения ---------- FROM build AS publish ARG BUILD_CONFIGURATION=Release RUN dotnet publish "./DD.Persistence.App.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +# ---------- Финальный образ с рантаймом ---------- FROM base AS final WORKDIR /app COPY --from=publish /app/publish .