FROM php:8.2-fpm-bullseye

# System deps + PHP extensions required by Laravel
RUN apt-get update \
  && apt-get install -y --no-install-recommends \
    git unzip zip libzip-dev zlib1g-dev libpng-dev libjpeg-dev libfreetype6-dev \
    libonig-dev libxml2-dev libicu-dev libpq-dev libcurl4-openssl-dev gnupg ca-certificates curl \
    default-mysql-client procps libmagickwand-6.q16-6 \
  && docker-php-ext-configure gd --with-freetype --with-jpeg \
  && docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip intl opcache sockets \
  && pecl install redis-5.3.7 || pecl install redis \
  && docker-php-ext-enable redis \
  && pecl install imagick || true \
  && docker-php-ext-enable imagick || true \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Install Node.js (20.x) so you don't need Node locally
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
  && apt-get update && apt-get install -y nodejs \
  && npm i -g pnpm --no-fund --no-audit || true

WORKDIR /var/www/html

# Copy entrypoint (will be mounted in dev from repo)
COPY docker/php/entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

# Create www-data user dirs
RUN chown -R www-data:www-data /var/www/html || true

EXPOSE 9000
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["php-fpm"]
