## https://github.com/userjack6880/Open-Report-Parser
FROM debian:12 AS parserbuild

RUN set -ex ; \
    apt-get update ; \
    apt-get -y upgrade ; \
    apt-get install -y git

WORKDIR /src
RUN git clone https://github.com/userjack6880/Open-Report-Parser.git 
RUN mkdir -p /opt/open-report-parser

# Extract archive
WORKDIR /src/Open-Report-Parser
RUN git archive --format tar main | tar -x -C /opt/open-report-parser

## https://github.com/userjack6880/Open-DMARC-Analyzer

### We need composer
FROM composer:latest AS composer
FROM php:cli AS analyzerbuilder

RUN set -ex ; \
    apt-get update ; \
    apt-get -y upgrade ; \
    apt-get install -y git ; \
    mkdir -p /src/analyzer

COPY --from=composer /usr/bin/composer /usr/bin/composer

WORKDIR /src
RUN git clone https://github.com/userjack6880/Open-DMARC-Analyzer.git

WORKDIR /src/Open-DMARC-Analyzer
RUN git archive --format tar version-1 | tar -x -C /src/analyzer

WORKDIR /src/analyzer
RUN /usr/bin/composer require "kevinoo/phpwhois":"^6.3"

## The Image!
FROM php:8.3-apache

# Install dependencies
RUN set -ex ; \
    apt-get update ; \
    apt-get -y upgrade ; \
    apt-get install -y libpq-dev libfile-mimeinfo-perl libmail-imapclient-perl libmime-tools-perl \
                       libxml-simple-perl libio-socket-inet6-perl libio-socket-ip-perl libperlio-gzip-perl \ 
                       libmail-mbox-messageparser-perl libwww-perl unzip \
                       libdbd-mysql-perl libdbd-pg-perl \
                       liblwp-protocol-https-perl libencode-perl libtime-piece-mysql-perl \
                       libjson-perl ; \
    docker-php-ext-install pdo pdo_mysql pdo_pgsql ; \
    rm -rf var/lib/apt/lists/*

# open-report-parser
COPY --from=parserbuild /opt/open-report-parser /opt/open-report-parser

# open-report-analyzer
COPY --chown=33:33 --from=analyzerbuilder /src/analyzer /var/www/html

# open-report-analyzer configuration
COPY --chown=33:33 ./conf/config.analyzer.php /var/www/html/config.php

# configure PHP
RUN cd /usr/local/etc/php ; \
    mv php.ini-production php.ini ; \
    rm php.ini-development