diff --git a/src/Mercados.Worker/Dockerfile b/src/Mercados.Worker/Dockerfile index 3b1d64b..f79d397 100644 --- a/src/Mercados.Worker/Dockerfile +++ b/src/Mercados.Worker/Dockerfile @@ -1,23 +1,31 @@ # --- Etapa 1: Build --- -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +# Usamos la imagen del SDK completa para tener todas las herramientas de compilación +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src -# Copiamos los archivos .csproj y restauramos +# Copiamos los archivos .csproj y restauramos las dependencias 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 +# Copiamos el resto del código fuente COPY src/. . -# Publicamos la aplicación +# Publicamos la aplicación en modo Release 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 +# Usamos la imagen de runtime, que es más ligera +FROM mcr.microsoft.com/dotnet/runtime:8.0 AS final + +# Instalamos las librerías de soporte para globalización e ICU (International Components for Unicode) +# Esto es necesario en imágenes de Linux minimalistas para poder usar codificaciones no-UTF8 como windows-1252. +RUN apt-get update && apt-get install -y libicu-dev && rm -rf /var/lib/apt/lists/* + WORKDIR /app COPY --from=build /app/publish . + +# El punto de entrada no cambia ENTRYPOINT ["dotnet", "Mercados.Worker.dll"] \ No newline at end of file