ARG DOCKER_PHP_VERSION

FROM php:${DOCKER_PHP_VERSION}-fpm-bullseye

ARG DOCKER_NODE_VERSION
ENV DOCKER_NODE_VERSION="${DOCKER_NODE_VERSION}"

# Installer les dépendances et extensions PHP nécessaires
RUN apt-get update && apt-get install -y \
        libicu-dev \
        libpq-dev \
        libpng-dev \
        libzip-dev \
        libxml2-dev \
        ca-certificates \
        gnupg \
        libbz2-dev \
        libgmp-dev \
        libldap2-dev \
        libonig-dev \
        libsodium-dev \
        libxslt1-dev \
        unixodbc-dev \
        libsqlite3-dev \
        zlib1g-dev \
        libssl-dev \
        libc-client-dev \
        libkrb5-dev \
        freetds-dev \
        vim \
        tcpdump \
        dnsutils \
        wget \
        git \
        unzip \
    && docker-php-ext-install -j$(nproc) \
            intl \
            zip \
            bcmath \
            bz2 \
            calendar \
            exif \
            gd \
            gettext \
            gmp \
            ldap \
            pcntl \
            pdo_pgsql \
            soap \
            sockets \
            sysvsem \
            xsl


# Installation de node
RUN wget -qO-  "https://nodejs.org/dist/v${DOCKER_NODE_VERSION}/node-v${DOCKER_NODE_VERSION}-linux-x64.tar.xz" | tar xJC /tmp/ && \
    cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-x64/bin /usr/ && \
    cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-x64/include /usr/ && \
    cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-x64/lib /usr/ && \
    cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-x64/share /usr/ && \
    npm install --global yarn

# installation/activation d'extensions php
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug && \
    docker-php-ext-install zip && \
    docker-php-ext-install gd && \
    docker-php-ext-install soap && \
    docker-php-ext-configure intl && \
    docker-php-ext-install intl

RUN docker-php-ext-enable opcache

# installation de composer
RUN rm -rf /var/cache/apk/* && rm -rf /tmp/* && \
    curl --insecure https://getcomposer.org/composer.phar -o /usr/bin/composer && chmod +x /usr/bin/composer

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

# Création de la structure du projet
RUN mkdir /var/www/html/LOG

###> User ###
ARG CURRENT_UID
ARG CURRENT_GID
# mapping du user host avec www-data
RUN usermod -o -u ${CURRENT_UID} www-data && groupmod -o -g ${CURRENT_GID} www-data
RUN chown www-data:www-data -R /var/www/*
RUN chown www-data:www-data -R /var/www/.*
###< User ###

RUN rm -rf \
        /var/lib/apt/lists/* \
        /tmp/* \
        /var/tmp/*

WORKDIR /var/www/html

EXPOSE 80
