#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:9.0 AS base USER app WORKDIR /app EXPOSE 8080 EXPOSE 8081 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 . ENTRYPOINT ["dotnet", "DD.Persistence.App.dll"]