# Etapa 1: Compilación
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src

# ENV EMAIL_PASS="passworcito"
# ENV EMAIL_ADDRESS="emailcito"

COPY ./Models ./Models
COPY ./Properties ./Properties
COPY ./Protos ./Protos
COPY ./Services ./Services
COPY ./appsettings.json ./appsettings.json
COPY ./EmailMicroservice.sln ./EmailMicroservice.sln
COPY ./EmailMicroservice.csproj ./EmailMicroservice.csproj
COPY ./Program.cs ./Program.cs
RUN dotnet restore "./EmailMicroservice.csproj"

RUN dotnet build "./EmailMicroservice.csproj" -c Release -o /app/build

# Etapa 2: Publicación
FROM build AS publish
RUN dotnet publish "./EmailMicroservice.csproj" -c Release -o /app/publish /p:UseAppHost=false

# Etapa 3: Final
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final
WORKDIR /app

# GRPC HEALTH
# Descarga la herramienta grpc_health_probe
ADD https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.4.43/grpc_health_probe-linux-amd64 /bin/grpc_health_probe
RUN chmod +x /bin/grpc_health_probe

COPY --from=publish /app/publish .
EXPOSE 8080 8081
ENTRYPOINT ["dotnet", "EmailMicroservice.dll"]
