| 
									
										
										
										
											2025-10-07 15:30:25 -03:00
										 |  |  | # --- Etapa 1: Build ---
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:18:11 -03:00
										 |  |  | FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
 | 
					
						
							|  |  |  | WORKDIR /src
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:30:25 -03:00
										 |  |  | # Copiamos solo los archivos .csproj para restaurar los paquetes.
 | 
					
						
							|  |  |  | # La ruta es correcta porque el contexto es la raíz del proyecto.
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:24:18 -03:00
										 |  |  | COPY ["backend/Inventario.API.csproj", "backend/"]
 | 
					
						
							|  |  |  | RUN dotnet restore "backend/Inventario.API.csproj"
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:18:11 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:30:25 -03:00
										 |  |  | # Copiamos el resto de los archivos del proyecto.
 | 
					
						
							|  |  |  | # Gracias al .dockerignore, las carpetas 'bin' y 'obj' locales no se copiarán.
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:18:11 -03:00
										 |  |  | COPY . .
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:30:25 -03:00
										 |  |  | # Nos movemos al directorio del proyecto para publicarlo
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:24:18 -03:00
										 |  |  | WORKDIR "/src/backend"
 | 
					
						
							| 
									
										
										
										
											2025-10-07 15:18:11 -03:00
										 |  |  | RUN dotnet publish "Inventario.API.csproj" -c Release -o /app/publish /p:UseAppHost=false
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --- Etapa 2: Final ---
 | 
					
						
							|  |  |  | FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final
 | 
					
						
							|  |  |  | WORKDIR /app
 | 
					
						
							|  |  |  | COPY --from=build /app/publish .
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # El puerto por defecto que exponen los contenedores de .NET es 8080
 | 
					
						
							|  |  |  | EXPOSE 8080
 | 
					
						
							|  |  |  | ENTRYPOINT ["dotnet", "Inventario.API.dll"]
 |