ARG REPO=mcr.microsoft.com/dotnet/aspnet # Installer image FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer RUN tdnf install -y \ ca-certificates \ gzip \ tar \ && tdnf clean all # Retrieve .NET Monitor Base RUN dotnet_monitor_version=9.0.5 \ && curl --fail --show-error --location --output dotnet-monitor-base.tar.gz https://builds.dotnet.microsoft.com/dotnet/diagnostics/monitor/$dotnet_monitor_version/dotnet-monitor-base-$dotnet_monitor_version-linux-arm64.tar.gz \ && dotnet_monitor_base_sha512='f381c3d915b802dbea98a7047c3561f8b7c8735dbad034ac64b2833b2fb40b868d3987f84f38eedf0e0fdabbaac52efd75ff66183fa31eddeb1f990a83bcdb52' \ && echo "$dotnet_monitor_base_sha512 dotnet-monitor-base.tar.gz" | sha512sum -c - \ && mkdir --parents /app \ && tar --gzip --extract --no-same-owner --file dotnet-monitor-base.tar.gz --directory /app \ && rm dotnet-monitor-base.tar.gz # .NET Monitor Base image FROM $REPO:9.0.19-azurelinux3.0-distroless-arm64v8 WORKDIR /app COPY --from=installer /app . ENV \ # Unset ASPNETCORE_HTTP_PORTS from aspnet base image ASPNETCORE_HTTP_PORTS= \ # Disable debugger and profiler diagnostics to avoid diagnosing self. COMPlus_EnableDiagnostics=0 \ # Default Filter DefaultProcess__Filters__0__Key=ProcessId \ DefaultProcess__Filters__0__Value=1 \ # Remove Unix Domain Socket before starting diagnostic port server DiagnosticPort__DeleteEndpointOnStartup=true \ # Server GC mode DOTNET_gcServer=1 \ # Logging: JSON format so that analytic platforms can get discrete entry information Logging__Console__FormatterName=json \ # Logging: Use round-trip date/time format without timezone information (always logged in UTC) Logging__Console__FormatterOptions__TimestampFormat=yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff'Z' \ # Logging: Write timestamps using UTC offset (+0:00) Logging__Console__FormatterOptions__UseUtcTimestamp=true \ # Add dotnet-monitor path to front of PATH for easier, prioritized execution PATH="/app:${PATH}" ENTRYPOINT [ "dotnet-monitor" ] CMD [ "collect", "--urls", "https://+:52323", "--metricUrls", "http://+:52325" ]