FROM mcr.microsoft.com/dotnet/sdk:10.0-alpine AS build
WORKDIR /src

COPY Notemark/Notemark.csproj Notemark/
RUN dotnet restore Notemark/Notemark.csproj \
    --source https://api.nuget.org/v3/index.json

COPY Notemark/ Notemark/
RUN dotnet publish Notemark/Notemark.csproj \
    --configuration Release \
    --output /app/publish \
    --no-restore

FROM mcr.microsoft.com/dotnet/aspnet:10.0-alpine AS final
WORKDIR /app

ENV ASPNETCORE_URLS=http://+:8080 \
    ASPNETCORE_FORWARDEDHEADERS_ENABLED=true \
    NOTEMARK_DATA_DIR=/app/data \
    DOTNET_EnableDiagnostics=0

COPY --from=build /app/publish .
RUN mkdir -p /app/data && chown -R app:app /app

USER app
EXPOSE 8080
VOLUME ["/app/data"]

HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
    CMD wget --quiet --spider http://127.0.0.1:8080/ || exit 1

ENTRYPOINT ["dotnet", "Notemark.dll"]
