﻿FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
#USER $APP_UID
WORKDIR /app
EXPOSE 80
USER root
RUN apt-get update && apt-get install -y unzip curl \
  && mkdir -p /vsdbg \
  && curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l /vsdbg \
  && apt-get clean && rm -rf /var/lib/apt/lists/*

FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["*.props", "/"]
COPY ["PTA.DataCloud.Api/", "PTA.DataCloud.Api/"]
COPY ["PTA.DataCloud.ServiceDefaults/", "PTA.DataCloud.ServiceDefaults/"]
COPY ["PTA.DataCloud.Shared/", "PTA.DataCloud.Shared/"]
COPY ["PTA.DataCloud.Agent/", "PTA.DataCloud.Agent/"]
RUN dotnet nuget add source https://nuget.ptabusiness.com/api/packages/protech/nuget/index.json -n gitea -u developer -p !Pr0t3ch# --store-password-in-clear-text
RUN dotnet build "PTA.DataCloud.Api/PTA.DataCloud.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
RUN apt-get update && apt-get install -y zip unzip
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "PTA.DataCloud.Api/PTA.DataCloud.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
RUN dotnet publish "PTA.DataCloud.Agent/PTA.DataCloud.Agent.csproj" -c $BUILD_CONFIGURATION -o /agent/publish/win-x64 -r win-x64 --self-contained true
RUN dotnet publish "PTA.DataCloud.Agent/PTA.DataCloud.Agent.csproj" -c $BUILD_CONFIGURATION -o /agent/publish/linux-x64 -r linux-x64 --self-contained true
RUN mkdir -p /app/publish/templates
RUN cd /agent/publish/win-x64 && zip -r /app/publish/templates/agent_template_w64.zip .
RUN cd /agent/publish/linux-x64 && zip -r /app/publish/templates/agent_template_l64.zip .

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "PTA.DataCloud.Api.dll"]
