# Utiliza una imagen oficial de .NET como base
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app_dao

# Purto por que escuchara servicio DAO en vSphere
EXPOSE 8445

# Utilizamos una imagen oficial de .net como build
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src/dao/server

# Copia los archivos necesarios de la aplicacion en el contenedor
COPY ServicesDAO /src/dao/ServicesDAO
COPY server/ /src/dao/server
COPY cloudservicesDAO.sln /src/dao
COPY cloudServiceDAO.proto /src/dao

# Restauramos el proyecto para que se cumplan todos los requerimientos
RUN dotnet restore 

# Construimos con la salida en el path indicado (-o)
RUN dotnet build server.csproj -c Release -o /app_dao/build

# Utilizamos la imagen de build como publish
FROM build AS publish

# Publicamos el proyecto en el path indicado (-o)
RUN dotnet publish server.csproj -c Release -o /app_dao/publish

# Crea la imagen final a partir de la base 
FROM base AS final
# Path de trabajo (donde alojara la aplicacion)
WORKDIR /app_dao
# Copiamos de la imagen publish y el contenido del path de publish hacia /app_dao
COPY --from=publish /app_dao/publish .
# Se ejecuta aplicacion 
ENTRYPOINT ["dotnet", "server.dll"]
