FROM php:8.4-fpm ARG UID=1000 ARG GID=1000 RUN apt update && apt install -y nginx git curl zip unzip supervisor libpq-dev libzip-dev libicu-dev; \ curl -fsSL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh; \ bash nodesource_setup.sh; \ apt install nodejs; \ pecl install xdebug; \ pecl install redis; \ docker-php-ext-install pdo_pgsql; \ docker-php-ext-install zip; \ docker-php-ext-install bcmath; \ docker-php-ext-install intl; \ docker-php-ext-enable xdebug; \ docker-php-ext-enable pcntl; \ docker-php-ext-enable redis; \ usermod -u $UID www-data; \ groupmod -g $GID www-data; \ apt clean; \ rm -rf /var/lib/{apt,dpkg,cache,log}/; \ apt clean autoclean; \ apt autoremove --yes WORKDIR /var/www/html COPY --from=composer:lts /usr/bin/composer /usr/local/bin/composer COPY composer.json composer.lock ./ RUN composer install --no-dev --prefer-dist --no-autoloader --optimize-autoloader && rm -rf /root/.composer/cache/* COPY nginx.conf /etc/nginx/sites-enabled/default COPY supervisord.conf /etc/supervisord.conf COPY entrypoint.sh /etc/entrypoint.sh COPY ./ ./ RUN chown -R www-data:www-data /var/www USER www-data RUN composer dump-autoload; \ npm install; \ npm run build; \ npm cache clean --force; \ rm -rf node_modules USER root RUN rm -rf /tmp/* /var/tmp/* EXPOSE 80 ENTRYPOINT [ "sh", "/etc/entrypoint.sh" ]