# Build stage FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src # Install AOT prerequisites RUN apt-get update \ && apt-get install -y --no-install-recommends \ clang \ zlib1g-dev # Copy solution file COPY ["Nashel.sln", "./"] # Copy project files COPY ["src/Host/Nashel.Host.csproj", "src/Host/"] COPY ["src/BuildingBlocks/Nashel.BuildingBlocks.csproj", "src/BuildingBlocks/"] COPY ["src/Modules/Catalog/Nashel.Modules.Catalog.csproj", "src/Modules/Catalog/"] COPY ["src/Modules/Collaboration/Nashel.Modules.Collaboration.csproj", "src/Modules/Collaboration/"] COPY ["src/Modules/Geo/Nashel.Modules.Geo.csproj", "src/Modules/Geo/"] COPY ["src/Modules/Identity/Nashel.Modules.Identity.csproj", "src/Modules/Identity/"] COPY ["src/Modules/Order/Nashel.Modules.Order.csproj", "src/Modules/Order/"] COPY ["src/Modules/Reputation/Nashel.Modules.Reputation.csproj", "src/Modules/Reputation/"] # Restore dependencies RUN dotnet restore "Nashel.sln" # Copy the rest of the source code COPY . . # Publish the application (AOT) WORKDIR "/src/src/Host" RUN dotnet publish "Nashel.Host.csproj" -c Release -r linux-x64 --self-contained true -o /app/publish # Final stage FROM mcr.microsoft.com/dotnet/runtime-deps:10.0 AS final WORKDIR /app COPY --from=build /app/publish . ENV ASPNETCORE_URLS=http://+:8080 EXPOSE 8080 ENTRYPOINT ["./Nashel.Host"]