# Use PHP 8.2 FPM Debian as base image FROM serversideup/php:8.3-fpm-nginx AS base # Switch to root so we can do root things USER root # Install the intl extension with root permissions RUN install-php-extensions pdo_mysql mbstring exif pcntl bcmath gd intl zip xml curl redis # Install JavaScript dependencies ARG NODE_VERSION=20.18.0 ENV PATH=/usr/local/node/bin:$PATH RUN curl -sL https://github.com/nodenv/node-build/archive/master.tar.gz | tar xz -C /tmp/ && \ /tmp/node-build-master/bin/node-build "${NODE_VERSION}" /usr/local/node && \ corepack enable && \ rm -rf /tmp/node-build-master # Drop back to our unprivileged user USER www-data FROM base # # Get latest Composer # COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # # Set working directory # WORKDIR /var/www/html COPY --chown=www-data:www-data ./ /var/www/html ENV PHP_OPCACHE_ENABLE=1 RUN /usr/bin/composer install --no-interaction --prefer-dist --optimize-autoloader RUN npm install --immutable && \ npm run build && \ rm -rf node_modules