Files
TitularesApp/backend/src/Titulares.Api/Dockerfile

30 lines
1.1 KiB
Docker
Raw Normal View History

2025-10-29 18:11:25 -03:00
# Etapa 1: Compilación
# Usamos la imagen del SDK de .NET 8 para compilar la aplicación
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
# Copiamos el archivo de proyecto y restauramos las dependencias primero
# Esto aprovecha el caché de capas de Docker
COPY ["Titulares.Api/Titulares.Api.csproj", "Titulares.Api/"]
RUN dotnet restore "Titulares.Api/Titulares.Api.csproj"
# Copiamos el resto del código fuente
COPY . .
WORKDIR "/src/Titulares.Api"
# Compilamos la aplicación en modo Release y la publicamos en la carpeta /app/publish
RUN dotnet publish "Titulares.Api.csproj" -c Release -o /app/publish --no-restore
# Etapa 2: Imagen Final
# Usamos la imagen de runtime de ASP.NET, que es mucho más ligera
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final
WORKDIR /app
COPY --from=build /app/publish .
# Exponemos el puerto 8080. El backend escuchará en este puerto dentro del contenedor.
EXPOSE 8080
# Establecemos el entorno a Producción para que se use appsettings.Production.json
ENV ASPNETCORE_ENVIRONMENT=Production
# Punto de entrada para ejecutar la aplicación
ENTRYPOINT ["dotnet", "Titulares.Api.dll"]