# Build jbig2enc in a separate stage
FROM debian:bullseye-slim as jbig2enc_builder

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        git \
        automake \
        autoconf \
        libtool \
        libleptonica-dev \
        pkg-config \
        ca-certificates \
        zlib1g-dev \
		make \
		g++

RUN git clone https://github.com/agl/jbig2enc && \
    cd jbig2enc && \
    ./autogen.sh && \
    ./configure && \
    make && \
    make install


# Main stage
FROM openjdk:17-jdk-slim AS base
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        libreoffice-core \
        libreoffice-common \
        libreoffice-writer \
        libreoffice-calc \
        libreoffice-impress \
        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
COPY --from=jbig2enc_builder /usr/local/bin/jbig2 /usr/local/bin/jbig2