# --- Build stage --- FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build WORKDIR /src # copy solution + restore-friendly files first for better layer caching COPY JSMR.sln ./ COPY src/JSMR.Api/JSMR.Api.csproj src/JSMR.Api/ COPY src/JSMR.Application/JSMR.Application.csproj src/JSMR.Application/ COPY src/JSMR.Domain/JSMR.Domain.csproj src/JSMR.Domain/ COPY src/JSMR.Infrastructure/JSMR.Infrastructure.csproj src/JSMR.Infrastructure/ RUN dotnet restore src/JSMR.Api/JSMR.Api.csproj # now copy the rest and publish COPY src/ ./src/ RUN dotnet publish src/JSMR.Api/JSMR.Api.csproj -c Release -o /app/publish --no-restore # --- Runtime stage --- FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime WORKDIR /app COPY --from=build /app/publish ./ # optional: set ASPNETCORE_URLS to port 8080 ENV ASPNETCORE_URLS=http://+:8080 EXPOSE 8080 ENTRYPOINT ["dotnet", "JSMR.Api.dll"]