feat(deploy): Añade configuración Docker para despliegue de servicios
This commit is contained in:
		
							
								
								
									
										27
									
								
								src/Mercados.Api/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/Mercados.Api/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| # --- Etapa 1: Build --- | ||||
| # 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 los archivos .csproj de cada proyecto para restaurar las dependencias de forma eficiente | ||||
| COPY ["src/Mercados.Api/Mercados.Api.csproj", "Mercados.Api/"] | ||||
| COPY ["src/Mercados.Infrastructure/Mercados.Infrastructure.csproj", "Mercados.Infrastructure/"] | ||||
| COPY ["src/Mercados.Core/Mercados.Core.csproj", "Mercados.Core/"] | ||||
| COPY ["src/Mercados.Database/Mercados.Database.csproj", "Mercados.Database/"] | ||||
| RUN dotnet restore "Mercados.Api/Mercados.Api.csproj" | ||||
|  | ||||
| # Copiamos el resto del código fuente | ||||
| COPY src/. . | ||||
|  | ||||
| # Publicamos la aplicación en modo Release, optimizada para producción | ||||
| WORKDIR "/src/Mercados.Api" | ||||
| RUN dotnet publish "Mercados.Api.csproj" -c Release -o /app/publish | ||||
|  | ||||
| # --- Etapa 2: Final --- | ||||
| # Usamos la imagen de runtime de ASP.NET, que es mucho más ligera que la del SDK | ||||
| FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final | ||||
| WORKDIR /app | ||||
| COPY --from=build /app/publish . | ||||
|  | ||||
| # Definimos el punto de entrada para ejecutar la aplicación cuando el contenedor arranque | ||||
| ENTRYPOINT ["dotnet", "Mercados.Api.dll"] | ||||
| @@ -16,7 +16,7 @@ namespace Mercados.Infrastructure.DataFetchers | ||||
|             // Empresas 'Latinas' en Wall Street | ||||
|             "MELI", "GLOB", | ||||
|             // ADRs Argentinos | ||||
|             "YPF", "GGAL", "BMA", "LOMA", "PAM", "TEO", "TGS", "EDN", "CRESY", "CEPU", "BBAR" | ||||
|             "YPF", "GGAL", "BMA", "LOMA", "TEO", "TGS", "EDN", "BBAR" | ||||
|         }; | ||||
|  | ||||
|         private readonly FinnhubClient _client; | ||||
|   | ||||
							
								
								
									
										23
									
								
								src/Mercados.Worker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/Mercados.Worker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| # --- Etapa 1: Build --- | ||||
| FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build | ||||
| WORKDIR /src | ||||
|  | ||||
| # Copiamos los archivos .csproj y restauramos | ||||
| COPY ["src/Mercados.Worker/Mercados.Worker.csproj", "Mercados.Worker/"] | ||||
| COPY ["src/Mercados.Infrastructure/Mercados.Infrastructure.csproj", "Mercados.Infrastructure/"] | ||||
| COPY ["src/Mercados.Core/Mercados.Core.csproj", "Mercados.Core/"] | ||||
| RUN dotnet restore "Mercados.Worker/Mercados.Worker.csproj" | ||||
|  | ||||
| # Copiamos el resto del código | ||||
| COPY src/. . | ||||
|  | ||||
| # Publicamos la aplicación | ||||
| WORKDIR "/src/Mercados.Worker" | ||||
| RUN dotnet publish "Mercados.Worker.csproj" -c Release -o /app/publish | ||||
|  | ||||
| # --- Etapa 2: Final --- | ||||
| # Usamos la imagen de runtime genérica de .NET, no la de ASP.NET | ||||
| FROM mcr.microsoft.com/dotnet/runtime:9.0 AS final | ||||
| WORKDIR /app | ||||
| COPY --from=build /app/publish . | ||||
| ENTRYPOINT ["dotnet", "Mercados.Worker.dll"] | ||||
		Reference in New Issue
	
	Block a user