test deploy

This commit is contained in:
Professional 2025-04-12 00:51:39 +07:00
parent 7783d17d6b
commit 87453f3263

View File

@ -1,41 +1,27 @@
# --- Стадия сборки --- # --- Стадия сборки ---
# Используем официальный образ .NET SDK для сборки приложения
# Укажите вашу версию .NET (8.0, 7.0, 6.0)
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /source WORKDIR /source
# Копируем .sln и .csproj файлы для восстановления зависимостей # Копируем .sln и .csproj файл (он теперь в корне)
# Копируем сначала их, чтобы использовать кэширование слоев Docker
# Если зависимости не менялись, этот слой не будет пересобираться
COPY *.sln . COPY *.sln .
COPY DailyDigestWorker/*.csproj ./DailyDigestWorker/ COPY *.csproj .
# Копируем другие проекты, если они есть в решении # Если будут другие проекты, их .csproj тоже копируем из корня
# Восстанавливаем NuGet пакеты для всего решения # Восстанавливаем NuGet пакеты для .csproj файла
RUN dotnet restore "./DailyDigestWorker/DailyDigestWorker.csproj" RUN dotnet restore "./DailyDigestWorker.csproj" # Используем имя файла проекта
# Если есть другие проекты, возможно, лучше восстановить для .sln: RUN dotnet restore
# Копируем весь остальной исходный код # Копируем весь остальной исходный код из корня
COPY . . COPY . .
# Публикуем приложение в Release конфигурации # Публикуем приложение
# --no-restore т.к. мы уже восстановили пакеты # WORKDIR уже /source, где лежит .csproj
# -o /app/publish указывает папку для вывода опубликованного приложения
WORKDIR /source/DailyDigestWorker
RUN dotnet publish "./DailyDigestWorker.csproj" -c Release -o /app/publish --no-restore RUN dotnet publish "./DailyDigestWorker.csproj" -c Release -o /app/publish --no-restore
# --- Финальная стадия --- # --- Финальная стадия ---
# Используем официальный образ .NET Runtime (он меньше, чем SDK)
# Укажите ту же версию .NET, что и SDK
FROM mcr.microsoft.com/dotnet/runtime:8.0 AS final FROM mcr.microsoft.com/dotnet/runtime:8.0 AS final
WORKDIR /app WORKDIR /app
# Копируем опубликованное приложение из стадии сборки
COPY --from=build /app/publish . COPY --from=build /app/publish .
# Устанавливаем переменную окружения для правильной работы с глобализацией (культуры, форматы)
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
# Указываем точку входа - команду для запуска нашего приложения
# Замените DailyDigestWorker.dll на фактическое имя вашей сборки, если оно другое
ENTRYPOINT ["dotnet", "DailyDigestWorker.dll"] ENTRYPOINT ["dotnet", "DailyDigestWorker.dll"]