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

# Restore dependencies
COPY SaasMediaWorker.csproj .
RUN dotnet restore

# Build
COPY . .
RUN dotnet publish -c Release -o /app/publish --no-restore

# Runtime — ARM64 uyumlu Alpine image
FROM mcr.microsoft.com/dotnet/runtime:8.0-alpine AS runtime
WORKDIR /app

# FFmpeg ve Globalization kurulumu (ARM64 native Alpine paketi)
RUN apk add --no-cache ffmpeg font-dejavu icu-libs

ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false

# Temp dizin oluştur
RUN mkdir -p /tmp/contgen-render

COPY --from=build /app/publish .

# Non-root user ile çalıştır (güvenlik)
RUN adduser -D -h /app workeruser
USER workeruser

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