FROM mcr.microsoft.com/dotnet/aspnet:8.0-bookworm-slim AS base
RUN mkdir /data
RUN chown 770 /data
WORKDIR /app
EXPOSE 8080
EXPOSE 8081

FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY src/ .

FROM build AS host-build
RUN dotnet restore "/src/SmartInvoicer.Host/SmartInvoicer.Host.csproj" --disable-parallel --disable-build-servers --force --no-cache
WORKDIR /src/SmartInvoicer.Host
RUN dotnet build "SmartInvoicer.Host.csproj" -c $BUILD_CONFIGURATION -o /app/build --no-restore /p:PublishReadyToRun=false /p:TreatWarningsAsErrors=false /p:WarningsNotAsErrors=NU1605

FROM host-build AS host-publish
ARG BUILD_CONFIGURATION=Release
WORKDIR /src/SmartInvoicer.Host
RUN dotnet publish "./SmartInvoicer.Host.csproj" -c $BUILD_CONFIGURATION -o /app/publish --no-restore /p:UseAppHost=false /p:PublishReadyToRun=false /p:TreatWarningsAsErrors=false /p:WarningsNotAsErrors=NU1605

FROM base AS final
WORKDIR /app
ARG VERSION_TAG="Not Specified"
RUN echo "$VERSION_TAG" > /app/build-version.txt
COPY --from=host-publish /app/publish .
ENTRYPOINT ["dotnet", "SmartInvoicer.Host.dll"] 