# TARGETARCH and TARGETOS are set automatically when --platform is provided. FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0 AS build-env ARG TARGETOS LABEL stage=build-env WORKDIR /source # copy required files for building # .dockerignore excludes App_Data and binaries from these COPY ./src ./src COPY Directory.Build.props . COPY Directory.Packages.props . # build, results are placed in /app RUN dotnet publish src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj -c Release -o /app --framework net10.0 /p:RunAnalyzers=false # build runtime image FROM mcr.microsoft.com/dotnet/aspnet:10.0-nanoserver-ltsc2025 AS build_windows FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS build_linux FROM build_${TARGETOS} AS aspnet EXPOSE 80 ENV ASPNETCORE_URLS=http://+:80 WORKDIR /app COPY --from=build-env /app/ . ENTRYPOINT ["dotnet", "OrchardCore.Cms.Web.dll"]