# ── Build stage ────────────────────────────────────────────────────────────── FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src COPY ["ControlPlane.Worker/ControlPlane.Worker.csproj", "ControlPlane.Worker/"] COPY ["ControlPlane.Core/ControlPlane.Core.csproj", "ControlPlane.Core/"] COPY ["Clarity.ServiceDefaults/Clarity.ServiceDefaults.csproj", "Clarity.ServiceDefaults/"] COPY ["Directory.Packages.props", "./"] RUN dotnet restore "ControlPlane.Worker/ControlPlane.Worker.csproj" COPY . . RUN dotnet publish "ControlPlane.Worker/ControlPlane.Worker.csproj" \ -c Release -o /app/publish --no-restore # ── Runtime stage ───────────────────────────────────────────────────────────── FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime WORKDIR /app # Install Pulumi CLI so the Automation API can shell out to it RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates \ && curl -fsSL https://get.pulumi.com | sh \ && apt-get purge -y curl \ && rm -rf /var/lib/apt/lists/* ENV PATH="/root/.pulumi/bin:${PATH}" COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "ControlPlane.Worker.dll"]