FROM php:8.3-fpm # Systempakete RUN apt-get update && apt-get install -y \ git unzip libzip-dev libicu-dev libpng-dev libonig-dev libxml2-dev netcat-openbsd \ libjpeg62-turbo-dev libfreetype6-dev libwebp-dev libssl-dev locales rsync curl ffmpeg \ && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-install -j"$(nproc)" intl zip pdo_mysql gd bcmath opcache pcntl exif \ && rm -rf /var/lib/apt/lists/* # --- NEU: Node.js & NPM installieren --- # Wir nutzen das offizielle NodeSource Setup Script für Version 20 (LTS) RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y nodejs # Redis-Extension RUN pecl install redis && docker-php-ext-enable redis # Composer COPY --from=composer:2 /usr/bin/composer /usr/bin/composer # PHP Produktionseinstellungen RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \ && { \ echo "opcache.enable=1"; \ echo "opcache.enable_cli=1"; \ echo "opcache.memory_consumption=256"; \ echo "opcache.interned_strings_buffer=16"; \ echo "opcache.max_accelerated_files=20000"; \ echo "opcache.validate_timestamps=1"; \ echo "opcache.revalidate_freq=1"; \ echo "opcache.fast_shutdown=1"; \ echo "opcache.jit=0"; \ } >> "$PHP_INI_DIR/php.ini" RUN echo "upload_max_filesize=2048M" >> /usr/local/etc/php/conf.d/uploads.ini \ && echo "post_max_size=2048M" >> /usr/local/etc/php/conf.d/uploads.ini RUN echo "memory_limit=1024M" >> /usr/local/etc/php/conf.d/memory.ini # PHP-FPM Tuning RUN mkdir -p /usr/local/etc/php-fpm.d \ && echo "[www]" > /usr/local/etc/php-fpm.d/www.conf \ && echo "user = www-data" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "group = www-data" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "listen = 9000" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "pm = dynamic" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "pm.max_children = 16" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "pm.start_servers = 4" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "pm.min_spare_servers = 4" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "pm.max_spare_servers = 8" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "pm.max_requests = 500" >> /usr/local/etc/php-fpm.d/www.conf \ && echo "catch_workers_output = yes" >> /usr/local/etc/php-fpm.d/www.conf # --- RECHTE-FIX: Auf 1000 anpassen --- # Wir stellen sicher, dass www-data exakt deine Host-UID/GID 1000 bekommt RUN usermod -u 1000 www-data && groupmod -g 1000 www-data RUN groupadd -f docker && usermod -aG docker www-data WORKDIR /var/www/html RUN mkdir -p /var/www/.npm && chown -R 1000:1000 /var/www/.npm # Wir starten als www-data USER www-data