FROM mcr.microsoft.com/dotnet/sdk:10.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build ARG TARGETARCH ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 ENV NUGET_XMLDOC_MODE=skip WORKDIR /app_source # 1. Copy everything over COPY . . # 2. Prevent exit code 155 (global.json version mismatch) RUN rm -f global.json # 3. Restore all projects using the solution context RUN dotnet restore "PostFundManagement.slnx" # 4. Move directly to the publish stage FROM build AS publish WORKDIR "/app_source/PostFundManagement.Api" RUN dotnet publish "PostFundManagement.Api.csproj" -c Release --no-restore -o /app/publish # 5. Final runtime assembly FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED=true ENTRYPOINT ["dotnet", "PostFundManagement.Api.dll"]