FROM php:8.5-fpm-trixie

ARG UID=1000
ARG GID=1000
ENV USER=development
ENV GROUPNAME=$USER

RUN groupadd -g ${GID} development \
 && useradd -u ${UID} -g development -m development

# Nginx + Supervisor installieren
RUN apt-get update
RUN apt-get install -y nginx \
    supervisor \
    bash  \
    mc \
    git \
    unzip \
    libzip-dev \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    libmagickwand-dev \
    imagemagick \
    ghostscript \
    && pecl install imagick \
    && docker-php-ext-enable imagick

# ImageMagick blockt PDF-Lesen/-Schreiben per Default (Debian policy.xml).
# Fuer den falsisign-Nachbau (PDF -> Raster -> PDF via imagick/ghostscript)
# muessen PDF-Rechte auf read|write gesetzt werden.
RUN for policy in /etc/ImageMagick-7/policy.xml /etc/ImageMagick-6/policy.xml; do \
        if [ -f "$policy" ]; then \
            sed -i 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' "$policy"; \
        fi; \
    done

    #&& rm -rf /var/lib/apt/lists/* \
 RUN mkdir -p /run/nginx

RUN docker-php-ext-install mysqli pdo pdo_mysql mbstring zip exif pcntl gd

RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
 && apt-get install -y nodejs

COPY /docker/php/composer.phar /usr/bin/composer

# Upload-/Speicher-Limits fuer die Bildverarbeitung (zz- laedt zuletzt).
COPY /docker/php/uploads.ini /usr/local/etc/php/conf.d/zz-uploads.ini

# Arbeitsverzeichnis
WORKDIR /var/www/html

# Volumes für persistente Daten
VOLUME ["/var/www/html"]

# Ports
EXPOSE 9000

# Start PHP-FPM + Nginx
CMD ["sh", "-c", "php-fpm -D && nginx -g 'daemon off;'"]

RUN chown -R development:development /var/www

USER development

# PHP-FPM läuft automatisch auf Port 9000
EXPOSE 9000
CMD ["php-fpm"]
