# Use the official PHP 8.2.16-fpm-bullseye base image FROM php:8.2.16-fpm-bullseye # Update package lists and install necessary packages RUN apt-get update && \ apt-get install -y --no-install-recommends \ net-tools \ wget \ curl \ libssl-dev \ libnss3 \ nano \ procps \ nodejs \ gcc \ g++ \ make \ yarn && \ rm -rf /var/lib/apt/lists/* # Install Composer RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \ HASH=`curl -sS https://composer.github.io/installer.sig` && \ php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;" && \ php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ rm -rf /tmp/composer-setup.php # Add nodesource repository for Node.js RUN curl -sL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh && \ bash nodesource_setup.sh && \ rm nodesource_setup.sh # Add Yarn repository and key RUN curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null && \ echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list # Install PHP extensions using mlocati's script RUN curl -sSLf -o /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \ chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd bz2 zip redis pdo_mysql mysqli mcrypt WORKDIR /srv USER root