FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy-chiseled-extra AS base USER $APP_UID WORKDIR /app EXPOSE 8080 FROM mcr.microsoft.com/dotnet/sdk:8.0-jammy AS build ARG BUILD_CONFIGURATION=Release ENV DOTNET_TOOLS_PATH=/build/.dotnet-tools ENV PATH="$DOTNET_TOOLS_PATH:$PATH" RUN dotnet tool install NSwag.ConsoleCore --tool-path $DOTNET_TOOLS_PATH --version 14.2.0.0 WORKDIR /src COPY StalwartSimpleLoginMiddleware/StalwartSimpleLoginMiddleware.csproj StalwartSimpleLoginMiddleware/ COPY StalwartSDK/StalwartSDK.csproj StalwartSDK/ RUN dotnet restore "StalwartSimpleLoginMiddleware/StalwartSimpleLoginMiddleware.csproj" COPY . . # Run NSwag for StalwartSDK RUN cd /src/StalwartSDK && \ nswag run nswag.json RUN dotnet publish StalwartSimpleLoginMiddleware/StalwartSimpleLoginMiddleware.csproj -c $BUILD_CONFIGURATION --no-restore -o /app/publish FROM base AS final WORKDIR /app COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "StalwartSimpleLoginMiddleware.dll"]