FROM php:8.3-fpm # 1. Сначала обновляем и ставим минимальные зависимости RUN apt-get update && apt-get install -y \ git \ wget \ gnupg \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # 2. Устанавливаем зависимости для самых важных расширений RUN apt-get update && apt-get install -y \ libzip-dev \ libxml2-dev \ libonig-dev \ libicu-dev \ libcurl4-openssl-dev \ libssl-dev \ zlib1g-dev \ && rm -rf /var/lib/apt/lists/* # 3. Устанавливаем БАЗОВЫЕ расширения (которые точно работают) RUN docker-php-ext-install \ bcmath \ intl \ mbstring \ zip \ opcache \ pdo # 4. Устанавливаем зависимости для GD RUN apt-get update && apt-get install -y \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libwebp-dev \ && rm -rf /var/lib/apt/lists/* # 5. Настраиваем и устанавливаем GD RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-install gd # 6. Устанавливаем зависимости для баз данных RUN apt-get update && apt-get install -y \ libpq-dev \ && rm -rf /var/lib/apt/lists/* # 7. Устанавливаем расширения для баз данных RUN docker-php-ext-install \ mysqli \ pdo_mysql \ pdo_pgsql \ pgsql # 8. Устанавливаем оставшиеся расширения RUN docker-php-ext-install \ calendar \ ctype \ curl \ fileinfo \ ftp \ gettext \ iconv \ phar \ posix \ xml \ dom \ simplexml \ sockets # 9. Устанавливаем зависимости для системных расширений RUN apt-get update && apt-get install -y \ libxslt-dev \ libexif-dev \ libffi-dev \ && rm -rf /var/lib/apt/lists/* # 10. Устанавливаем системные расширения RUN docker-php-ext-install \ xsl \ exif \ ffi \ shmop # 11. Устанавливаем PECL расширения #RUN apt-get update && apt-get install -y \ # libmagickwand-dev \ # && rm -rf /var/lib/apt/lists/* # 12. Устанавливаем через PECL по одному с проверкой #RUN pecl install redis && docker-php-ext-enable redis RUN cd /tmp && \ git clone --branch 6.3.0 --depth 1 https://github.com/phpredis/phpredis.git && \ cd phpredis && \ phpize && \ ./configure && \ make -j$(nproc) && \ make install && \ docker-php-ext-enable redis && \ rm -rf /tmp/phpredis # 13. Imagick может быть проблемным - ставим последним #RUN if pecl install imagick; then \ # docker-php-ext-enable imagick; \ # fi # 14. Дополнительные PECL расширения (по желанию) - раскомментируйте если нужно # RUN pecl install igbinary && docker-php-ext-enable igbinary && echo "✅ Igbinary установлен" # RUN pecl install msgpack && docker-php-ext-enable msgpack && echo "✅ Msgpack установлен" # RUN pecl install grpc && docker-php-ext-enable grpc && echo "✅ GRPC установлен" # 15. Memcache (устаревшее, но если нужно) - раскомментируйте если нужно # RUN pecl install memcache && docker-php-ext-enable memcache && echo "✅ Memcache установлен" # 16. Установка Composer RUN curl -sS https://getcomposer.org/installer | php -- \ --install-dir=/usr/local/bin --filename=composer # 17. Создание пользователя RUN groupadd -g 1000 www && \ useradd -u 1000 -ms /bin/bash -g www www # 18. Копирование файлов проекта COPY --chown=www:www . /var/www WORKDIR /var/www # 19. Смена пользователя USER www # 20. Expose port 9000 и запуск php-fpm EXPOSE 9000 CMD ["php-fpm"]