diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0c1d13a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +# Stage 1: Base runtime +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +WORKDIR /app +EXPOSE 8080 + +# Stage 2: Build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +WORKDIR /src + +# Copy the solution file +COPY ["ImperialRecruitment.sln", "./"] + +# Copy all project files (so restore works with project references) +COPY ["IR.Blazor/IR.Blazor.csproj", "IR.Blazor/"] +COPY ["IR.Data/IR.Data.csproj", "IR.Data/"] +COPY ["IR.Domain/IR.Domain.csproj", "IR.Domain/"] + +# Restore packages +RUN dotnet restore "./ImperialRecruitment.sln" + +# Copy the rest of the source +COPY . . + +# Publish only the Blazor Server project +WORKDIR "/src/IR.Blazor" +RUN dotnet publish -c Release -o /app/publish + +# Stage 3: Runtime container +FROM base AS final +WORKDIR /app +COPY --from=build /app/publish . +ENTRYPOINT ["dotnet", "IR.Blazor.dll"]