# ---- Stage 1: Build ----
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src

# Устанавливаем Python (необходим для WebAssembly компиляции)
RUN apt-get update && apt-get install -y python3 && ln -s /usr/bin/python3 /usr/bin/python

# Устанавливаем workload для WebAssembly
RUN dotnet workload install wasm-tools

# Копируем csproj всех проектов для восстановления зависимостей
COPY ["PlaylistShared.Pwa/PlaylistShared.Pwa.csproj", "PlaylistShared.Pwa/"]
COPY ["PlaylistShared.Shared/PlaylistShared.Shared.csproj", "PlaylistShared.Shared/"]

# Восстанавливаем зависимости
RUN dotnet restore "PlaylistShared.Pwa/PlaylistShared.Pwa.csproj"

# Копируем весь исходный код
COPY . .

# Переходим в папку проекта и публикуем
WORKDIR "/src/PlaylistShared.Pwa"
RUN dotnet publish "./PlaylistShared.Pwa.csproj" -c $BUILD_CONFIGURATION -o /app/publish

RUN ls -la /app/publish/wwwroot

# ---- Stage 2: Nginx ----
FROM nginx:alpine AS final

# Копируем кастомную конфигурацию Nginx
COPY PlaylistShared.Pwa/nginx.conf /etc/nginx/nginx.conf

# Удаляем дефолтную статику Nginx
RUN rm -rf /usr/share/nginx/html/*

# Копируем собранные файлы Blazor (wwwroot) в папку Nginx
COPY --from=build /app/publish/wwwroot /usr/share/nginx/html

# Открываем порт 80
EXPOSE 80