# Use alpine linux as base image
FROM alpine:latest AS tei2korapxml

RUN apk update && \
    apk add --no-cache git \
            perl \
            perl-io-socket-ssl \
            perl-dev \
            g++ \
            make \
            wget \
            perl-doc \
            libxml2-dev \
            perl-xml-libxml \
            perl-module-pluggable \
            openjdk21-jre \
            curl && \
    set -o pipefail

# Install cpm (faster CPAN module installer)
RUN curl -fsSL https://raw.githubusercontent.com/kupietz/cpm/main/cpm > /bin/cpm && chmod a+x /bin/cpm

# Copy repository respecting .dockerignore
COPY . /tei2korapxml

WORKDIR /tei2korapxml

# Install build-time dependencies required by Makefile.PL
RUN cpm install --show-build-log-on-failure --test -g File::ShareDir::Install

# Install runtime Perl module dependencies from Makefile.PL
RUN cpm install --show-build-log-on-failure --test -g \
    File::ShareDir \
    File::Share \
    XML::CompactTree::XS \
    XML::LibXML::Reader \
    IO::Compress::Zip \
    IO::Uncompress::Unzip \
    Log::Any \
    Time::Progress

# XML::Loy is only needed by the bundled test helpers. Do not run its
# upstream test suite during the production image build.
RUN cpm install --show-build-log-on-failure -g XML::Loy

# Run Makefile.PL and install (this will install share files properly)
RUN perl Makefile.PL && make install

# Remove all build dependencies to reduce image size
RUN rm /bin/cpm && \
    apk del git \
            perl-dev \
            perl-doc \
            g++ \
            wget \
            libxml2-dev \
            curl && \
    rm -rf /root/.cpanm \
           /usr/local/share/man

# Create non-root user for security
RUN addgroup -S korap && \
    adduser -S tei2korapxml -G korap && \
    chown -R tei2korapxml:korap /tei2korapxml

USER tei2korapxml

# Set up entrypoint
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]

# Default command shows help
CMD ["--help"]

LABEL description="Docker Image for tei2korapxml - TEI P5 to KorAP-XML converter"
LABEL maintainer="korap@ids-mannheim.de"
LABEL repository="https://github.com/KorAP/KorAP-XML-TEI"

# Build command:
# docker build -f Dockerfile -t korap/tei2korapxml:x.xx-large .

# Slimming with mintoolkit/mint (https://github.com/mintoolkit/mint):
# mint build --http-probe=false \
#            --exec="tei2korapxml --version" \
#            --include-workdir=true \
#            --include-path="/usr/local/share/perl5/site_perl/KorAP/" \
#            --tag korap/tei2korapxml:x.xx \
#            --tag korap/tei2korapxml:latest \
#            korap/tei2korapxml:x.xx-large
