ARG SERVER_PHP_IMAGE=unknown
ARG COMPOSER_IMAGE=composer:latest
ARG SERVER_IMAGE_TITLE_LABEL=unknown
ARG SERVER_IMAGE_DESCRIPTION_LABEL=unknown

# Image Composer
FROM ${COMPOSER_IMAGE} AS php_composer

# Image du serveur PHP à utiliser (Apache, FrankenPHP...)
FROM ${SERVER_PHP_IMAGE}

ARG SERVER_IMAGE_TITLE_LABEL
ARG SERVER_IMAGE_DESCRIPTION_LABEL

LABEL org.opencontainers.image.title="${SERVER_IMAGE_TITLE_LABEL}"
LABEL org.opencontainers.image.description="${SERVER_IMAGE_DESCRIPTION_LABEL}"

# Installation de Composer
COPY --from=php_composer /usr/bin/composer /usr/local/bin/composer

# Activation du mode rewrite d'Apache
ARG SERVER_PHP_IMAGE
RUN if echo "$SERVER_PHP_IMAGE" | grep -qi apache; then \
      a2enmod rewrite headers; \
    fi

RUN apt-get update && apt-get install -y \
    nano \
    git \
    mariadb-client \
    npm \
    # Pour l'extension PHP intl
    libicu-dev \
    # Zip
    unzip zip libzip-dev zlib1g-dev \
    # GD
    libpng-dev libjpeg-dev libwebp-dev libavif-dev libfreetype6-dev \
    && docker-php-ext-configure gd \
      --with-freetype \
      --with-jpeg \
      --with-webp \
      --with-avif \
    && docker-php-ext-install zip pdo_mysql gd sockets intl \
    # Installation de PIE (PHP Installer for Extensions : https://github.com/php/pie)
    && curl -fL --output /tmp/pie.phar https://github.com/php/pie/releases/latest/download/pie.phar \
    && mv /tmp/pie.phar /usr/local/bin/pie \
    && chmod +x /usr/local/bin/pie

# Installation de Memcached
ARG WITH_MEMCACHED=false
RUN if [ "$WITH_MEMCACHED" = "true" ]; then \
    apt-get install -y libmemcached-dev; \
    pie install php-memcached/php-memcached; \
    fi

# Installation de Redis
ARG WITH_REDIS=false
RUN if [ "$WITH_REDIS" = "true" ]; then \
    pie install phpredis/phpredis; \
    fi

RUN apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN usermod -u 1000 www-data && groupmod -g 1000 www-data

# Configuration pour Composer
RUN mkdir -p /var/www/.cache/composer && chown -R www-data:www-data /var/www/.cache
ENV COMPOSER_CACHE_DIR=/var/www/.cache/composer

# Configuration de NPM
RUN mkdir -p /var/www/.npm && chown -R www-data:www-data /var/www/.npm
ENV NPM_CONFIG_CACHE=/var/www/.npm
