26 lines
925 B
Docker
26 lines
925 B
Docker
|
|
# --- Etapa 1: Compilación (Build) ---
|
||
|
|
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# Copiar archivos de proyecto y restaurar dependencias primero para aprovechar el caché de Docker
|
||
|
|
COPY backend/src/Titulares.Api/Titulares.Api.csproj backend/src/Titulares.Api/
|
||
|
|
RUN dotnet restore backend/src/Titulares.Api/Titulares.Api.csproj
|
||
|
|
|
||
|
|
# Copiar el resto del código fuente del backend
|
||
|
|
COPY backend/src/ ./backend/src/
|
||
|
|
|
||
|
|
# Publicar la aplicación en modo Release
|
||
|
|
RUN dotnet publish backend/src/Titulares.Api/Titulares.Api.csproj -c Release -o /app/publish
|
||
|
|
|
||
|
|
# --- Etapa 2: Imagen Final (Final) ---
|
||
|
|
FROM mcr.microsoft.com/dotnet/aspnet:9.0
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# Copiar solo los artefactos compilados desde la etapa de build
|
||
|
|
COPY --from=build /app/publish .
|
||
|
|
|
||
|
|
# Exponer el puerto interno que ASP.NET Core usará por defecto en Docker
|
||
|
|
EXPOSE 8080
|
||
|
|
|
||
|
|
# Comando para iniciar la aplicación
|
||
|
|
ENTRYPOINT ["dotnet", "Titulares.Api.dll"]
|