# Build stage FROM mcr.microsoft.com/dotnet/sdk:10.0-preview AS build WORKDIR /src # Copy solution file COPY *.sln ./ # Copy all project files COPY Svrnty.CQRS.Abstractions/*.csproj ./Svrnty.CQRS.Abstractions/ COPY Svrnty.CQRS/*.csproj ./Svrnty.CQRS/ COPY Svrnty.CQRS.MinimalApi/*.csproj ./Svrnty.CQRS.MinimalApi/ COPY Svrnty.CQRS.FluentValidation/*.csproj ./Svrnty.CQRS.FluentValidation/ COPY Svrnty.CQRS.DynamicQuery.Abstractions/*.csproj ./Svrnty.CQRS.DynamicQuery.Abstractions/ COPY Svrnty.CQRS.DynamicQuery/*.csproj ./Svrnty.CQRS.DynamicQuery/ COPY Svrnty.CQRS.DynamicQuery.MinimalApi/*.csproj ./Svrnty.CQRS.DynamicQuery.MinimalApi/ COPY Svrnty.CQRS.Grpc.Abstractions/*.csproj ./Svrnty.CQRS.Grpc.Abstractions/ COPY Svrnty.CQRS.Grpc/*.csproj ./Svrnty.CQRS.Grpc/ COPY Svrnty.CQRS.Grpc.Generators/*.csproj ./Svrnty.CQRS.Grpc.Generators/ COPY Svrnty.Sample/*.csproj ./Svrnty.Sample/ # Restore dependencies RUN dotnet restore # Copy all source files COPY . . # Build and publish WORKDIR /src/Svrnty.Sample RUN dotnet publish -c Release -o /app/publish --no-restore # Runtime stage FROM mcr.microsoft.com/dotnet/aspnet:10.0-preview AS runtime WORKDIR /app # Install curl for health checks RUN apt-get update && \ apt-get install -y --no-install-recommends curl && \ rm -rf /var/lib/apt/lists/* # Copy published application COPY --from=build /app/publish . # Expose ports EXPOSE 6000 6001 # Set environment variables ENV ASPNETCORE_URLS=http://+:6001;http://+:6000 ENV ASPNETCORE_ENVIRONMENT=Production # Run the application ENTRYPOINT ["dotnet", "Svrnty.Sample.dll"]