ARG DOTNET_VERSION=9.0 FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} AS build ARG PROJECT_PATH WORKDIR /src COPY . . RUN dotnet publish "${PROJECT_PATH}" -c Release -o /app/publish FROM mcr.microsoft.com/dotnet/aspnet:${DOTNET_VERSION} AS runtime ARG APP_DLL WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends curl \ && rm -rf /var/lib/apt/lists/* USER app COPY --from=build --chown=app:app /app/publish . ENV ASPNETCORE_ENVIRONMENT=Production \ ASPNETCORE_URLS=http://0.0.0.0:8080 \ DOTNET_RUNNING_IN_CONTAINER=true \ DOTNET_PRINT_TELEMETRY_MESSAGE=false \ APP_DLL=${APP_DLL} EXPOSE 8080 HEALTHCHECK --interval=15s --timeout=5s --start-period=30s --retries=3 \ CMD curl --fail --silent http://localhost:8080/healthz || exit 1 ENTRYPOINT ["sh", "-c", "dotnet \"$APP_DLL\""]