# Eén Dockerfile voor alle .NET-hosts. Welke host gebouwd wordt, geef je mee met build-args:
#   docker build --build-arg PROJECT=src/Caldro.SystemMonitor.Collector.Worker \
#                --build-arg ASSEMBLY=Caldro.SystemMonitor.Collector.Worker -t caldro/collector .
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG PROJECT
WORKDIR /src

COPY Directory.Build.props ./
COPY Caldro.SystemMonitor.sln ./
COPY src/ ./src/
COPY tests/ ./tests/
COPY seed/ ./seed/

RUN dotnet publish "${PROJECT}" -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
ARG ASSEMBLY
ENV ASSEMBLY=${ASSEMBLY}
ENV ASPNETCORE_URLS=http://+:8080
ENV DOTNET_EnableDiagnostics=0
WORKDIR /app

COPY --from=build /app/publish .

EXPOSE 8080
ENTRYPOINT ["sh", "-c", "dotnet ${ASSEMBLY}.dll"]
