
# Base Image for PHP and dependencies
FROM php:8.5-fpm AS base

# Install essential system dependencies and PHP extensions
RUN apt-get update -y && apt-get install -y \
    unzip curl gnupg libpng-dev libjpeg-dev libfreetype6-dev libonig-dev \
    libzip-dev libicu-dev libxslt-dev build-essential libffi-dev libssl-dev \
    libpixman-1-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev \
    libjpeg-dev libgif-dev libzip-dev libxslt-dev supervisor \
    nginx sudo cron nano wget postfix rsync pstoedit libpstoedit-dev \
    libmagickcore-dev autopoint git intltool python3 python3-dev \
    python3-pip python3-pil python3-path \
    && ln -sf python3 /usr/bin/python \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd xsl pdo_mysql zip intl bcmath soap \
    sockets mysqli exif ftp \
    && pecl install oauth imagick-3.8.1 \
    && docker-php-ext-enable oauth imagick \
    && rm -rf /var/lib/apt/lists/*

# Install Inkscape 1.4.3 via AppImage (apt version is outdated)
RUN wget -O /tmp/inkscape.AppImage "https://media.inkscape.org/dl/resources/file/Inkscape-0d15f75-x86_64.AppImage" \
    && chmod +x /tmp/inkscape.AppImage \
    && cd /tmp && /tmp/inkscape.AppImage --appimage-extract \
    && mv /tmp/squashfs-root /opt/inkscape \
    && ln -s /opt/inkscape/AppRun /usr/local/bin/inkscape \
    && rm /tmp/inkscape.AppImage

# Install Composer
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer

# Install Node.js
FROM node:24 AS node-stage

# Install Node.js in the base image
FROM base AS php-base
COPY --from=node-stage /usr/local/include/node /usr/local/include/node
COPY --from=node-stage /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=node-stage /usr/local/bin/node /usr/local/bin/node
RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm

# Configure sudoers for www-data user
RUN echo 'www-data ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

# Set work directory
WORKDIR /var/www/html

# Expose ports
EXPOSE 80 3000