FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 # Dependencies for Telerik Reporting on Linux using older GDI+ RUN apt-get update \ && apt-get install -y --allow-unauthenticated \ libc6-dev \ libgdiplus \ libx11-dev \ && rm -rf /var/lib/apt/lists/* FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src COPY ./NuGet.Config ./NuGet.Config WORKDIR /src/MyAspNetCoreApp COPY . . # Here we use a docker secret to update the 'Telerik' package source in the nuget.config. RUN --mount=type=secret,id=telerik_key \ echo $(cat /run/secrets/telerik_key) \ && dotnet nuget update source "Telerik" -s "https://nuget.telerik.com/v3/index.json" -u "api-key" -p $(cat /run/secrets/telerik_key) --configfile "./NuGet.Config" --store-password-in-clear-text \ && dotnet restore "MyAspNetCoreApp.csproj" --configfile "./NuGet.Config" \ && dotnet publish "MyAspNetCoreApp.csproj" -c Release -o /app/publish /p:UseAppHost=false --self-contained false FROM base AS final WORKDIR /app COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "MyAspNetCoreApp.dll"]