26 lines
		
	
	
		
			800 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			800 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Etapa 1: Compilación
 | |
| FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
 | |
| WORKDIR /src
 | |
| 
 | |
| # 1. Copia solo el archivo .csproj.
 | |
| # La ruta de origen es "Titulares.Api.csproj" porque está en la raíz del contexto.
 | |
| COPY Titulares.Api.csproj .
 | |
| 
 | |
| # 2. Restaura las dependencias. Docker guardará esta capa en caché.
 | |
| RUN dotnet restore "Titulares.Api.csproj"
 | |
| 
 | |
| # 3. Copia el resto de los archivos del proyecto.
 | |
| COPY . .
 | |
| 
 | |
| # 4. Publica la aplicación.
 | |
| # --no-restore se usa porque ya hemos restaurado las dependencias.
 | |
| RUN dotnet publish "Titulares.Api.csproj" -c Release -o /app/publish --no-restore
 | |
| 
 | |
| # Etapa 2: Imagen Final
 | |
| FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final
 | |
| WORKDIR /app
 | |
| COPY --from=build /app/publish .
 | |
| 
 | |
| EXPOSE 8080
 | |
| ENV ASPNETCORE_ENVIRONMENT=Production
 | |
| ENTRYPOINT ["dotnet", "Titulares.Api.dll"] |