25 lines
		
	
	
		
			879 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			879 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # --- Etapa 1: Build ---
 | |
| FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
 | |
| WORKDIR /src
 | |
| 
 | |
| # Copiamos solo los archivos .csproj para restaurar los paquetes.
 | |
| # La ruta es correcta porque el contexto es la raíz del proyecto.
 | |
| COPY ["backend/Inventario.API.csproj", "backend/"]
 | |
| RUN dotnet restore "backend/Inventario.API.csproj"
 | |
| 
 | |
| # Copiamos el resto de los archivos del proyecto.
 | |
| # Gracias al .dockerignore, las carpetas 'bin' y 'obj' locales no se copiarán.
 | |
| COPY . .
 | |
| 
 | |
| # Nos movemos al directorio del proyecto para publicarlo
 | |
| WORKDIR "/src/backend"
 | |
| 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"] |