# Main stage
FROM openjdk:17-jdk-slim AS base
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        libreoffice-core-nogui \
        libreoffice-common \
        libreoffice-writer-nogui \
        libreoffice-calc-nogui \
        libreoffice-impress-nogui \
        python3-uno \
        python3-pip \
        unoconv \
        pngquant \
        unpaper \
        ocrmypdf && \
    rm -rf /var/lib/apt/lists/* && \
    mkdir /usr/share/tesseract-ocr-original && \
    cp -r /usr/share/tesseract-ocr/* /usr/share/tesseract-ocr-original && \
    rm -rf /usr/share/tesseract-ocr

# Python packages stage
FROM base AS python-packages
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        libffi-dev \
        libssl-dev \
        zlib1g-dev \
        libjpeg-dev && \
    pip install --upgrade pip && \
    pip install --no-cache-dir \
        opencv-python-headless && \
    rm -rf /var/lib/apt/lists/*

# Final stage: Copy necessary files from the previous stage
FROM base
COPY --from=python-packages /usr/local /usr/local