FROM node:20-bookworm-slim
WORKDIR /usr/src/app

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        poppler-utils \
        tesseract-ocr \
        tesseract-ocr-deu \
        tesseract-ocr-eng \
    && rm -rf /var/lib/apt/lists/*

# Package-Dateien
COPY package*.json ./

# Dev + Prod Dependencies (für TS-Build nötig).
# Sharp benötigt im Linux-Container native optionale Pakete, auch wenn das Lockfile auf macOS erzeugt wurde.
RUN npm install --include=optional \
    && npm install --include=optional --os=linux --cpu=x64 sharp

# Restlicher Sourcecode
COPY . .

# TypeScript Build
RUN npm run build

# Port freigeben
EXPOSE 3100

# Migrationen ausführen und App starten
CMD ["sh", "./docker-entrypoint.sh"]
