persistence/DD.Persistence.App/Dockerfile
Olga Nemt fbdc5a451d
All checks were successful
Unit tests / test (push) Successful in 1m8s
Кодировка Dockerfile
2025-01-24 10:40:26 +05:00

51 lines
2.1 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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"]