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 — architecture detectee a la volee # (x64 sur Intel/amd64, arm64 sur Apple Silicon) pour que le build passe sur les deux. RUN NODE_ARCH="$(dpkg --print-architecture)" && \ case "$NODE_ARCH" in \ amd64) NODE_ARCH="x64" ;; \ arm64) NODE_ARCH="arm64" ;; \ *) echo "Architecture Node non supportee : $NODE_ARCH" && exit 1 ;; \ esac && \ wget -qO- "https://nodejs.org/dist/v${DOCKER_NODE_VERSION}/node-v${DOCKER_NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" | tar xJC /tmp/ && \ cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-${NODE_ARCH}/bin /usr/ && \ cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-${NODE_ARCH}/include /usr/ && \ cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-${NODE_ARCH}/lib /usr/ && \ cp -r /tmp/node-v${DOCKER_NODE_VERSION}-linux-${NODE_ARCH}/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 -p /var/www/html/LOG /var/www/html/var/cache /var/www/html/var/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