FROM php:8.3-apache-bookworm

ENV APACHE_DOCUMENT_ROOT=/var/www/html/public \
    COMPOSER_ALLOW_SUPERUSER=1

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        default-mysql-client \
        git \
        libfreetype6-dev \
        libgmp-dev \
        libicu-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libxml2-dev \
        libzip-dev \
        fontconfig \
        fonts-dejavu-core \
        unzip \
        wkhtmltopdf \
        xvfb \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j"$(nproc)" gd gmp intl opcache pdo_mysql soap zip \
    && ln -sf /usr/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf \
    && ln -sf /usr/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage \
    && a2enmod headers rewrite \
    && rm -rf /var/lib/apt/lists/*

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY docker/apache/000-default.conf /etc/apache2/sites-available/000-default.conf
COPY docker/php/conf.d/mbinv.ini /usr/local/etc/php/conf.d/mbinv.ini
COPY docker/entrypoint.sh /usr/local/bin/mbinv-entrypoint

RUN sed -i 's/\r$//' /usr/local/bin/mbinv-entrypoint \
    && chmod +x /usr/local/bin/mbinv-entrypoint

WORKDIR /var/www/html

COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --prefer-dist --no-interaction --optimize-autoloader

COPY . .

RUN mkdir -p var/cache var/log var/sessions public/uploads tmp \
    && chown -R www-data:www-data var public/uploads tmp

ENTRYPOINT ["mbinv-entrypoint"]
CMD ["apache2-foreground"]
