FROM composer:latest AS composer FROM php:8.2-fpm COPY --from=composer /usr/bin/composer /usr/bin/composer ARG USER_ID ARG GROUP_ID ADD images/php82/php.ini /usr/local/etc/php/php.ini ADD www/first.loc/api /var/www/first.loc/api # ============================================ # БЛОК 1: Настройка пользователя и прав # ============================================ RUN chown -R 1000:1000 /var/www/ && \ usermod -u 1000 www-data && \ groupmod -g 1000 www-data # ============================================ # БЛОК 2: Базовая система и обновление пакетов # ============================================ RUN apt-get update -y && \ apt-get -y install \ gcc \ make \ autoconf \ libc-dev \ pkg-config \ libzip-dev \ locales # ============================================ # БЛОК 3: Основные инструменты и библиотеки # ============================================ RUN apt-get install -y --no-install-recommends \ git \ libz-dev \ libpq-dev \ libxml2-dev \ libmemcached-dev \ libldap2-dev \ libbz2-dev \ zlib1g-dev \ libicu-dev \ g++ \ libssl-dev \ libssl-doc \ libsasl2-dev \ curl \ libcurl4-openssl-dev # ============================================ # БЛОК 4: Специализированные библиотеки # ============================================ RUN apt-get install -y --no-install-recommends \ libgmp-dev \ firebird-dev \ libib-util # ============================================ # БЛОК 5: Библиотеки для изображений и графики # ============================================ RUN apt-get install -y --no-install-recommends \ re2c \ libpng++-dev \ libwebp-dev \ libjpeg-dev \ libjpeg62-turbo-dev \ libpng-dev \ libxpm-dev \ libvpx-dev \ libfreetype6-dev # ============================================ # БЛОК 6: Python и ImageMagick # ============================================ RUN apt-get install -y --no-install-recommends \ python3 \ python3-pip \ libmagick++-dev \ libmagickwand-dev # ============================================ # БЛОК 7: Дополнительные утилиты и библиотеки # ============================================ RUN apt-get install -y --no-install-recommends \ zlib1g-dev \ libgd-dev \ unzip \ libpcre2-dev \ libtidy-dev \ libxslt1-dev \ libmagic-dev \ libexif-dev \ file \ libmhash2 \ libmhash-dev \ libkrb5-dev \ libssh2-1-dev \ poppler-utils \ ghostscript \ libmagickwand-dev \ libsnmp-dev \ libedit-dev \ libreadline-dev \ libsodium-dev \ freetds-bin \ freetds-dev \ freetds-common \ libct4 \ libsybdb5 \ tdsodbc \ librecode-dev \ libpspell-dev \ libonig-dev # ============================================ # БЛОК 8: Пропускаем IMAP (не нужен для работы) # ============================================ RUN echo "IMAP extension skipped - continuing with other extensions" # ============================================ # БЛОК 9: Установка расширений PHP (часть 1) # ============================================ RUN ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/ && \ docker-php-ext-install pdo_dblib && \ docker-php-ext-install dba && \ docker-php-ext-install curl && \ docker-php-ext-install fileinfo && \ docker-php-ext-install filter && \ docker-php-ext-install exif && \ docker-php-ext-install gettext && \ docker-php-ext-install gmp && \ docker-php-ext-install iconv # ============================================ # БЛОК 10: Установка расширений PHP (часть 2 - базы данных) # ============================================ RUN docker-php-ext-install mysqli && \ docker-php-ext-install pdo_mysql && \ docker-php-ext-install pdo_pgsql && \ docker-php-ext-install pgsql && \ docker-php-ext-install session && \ docker-php-ext-install zip && \ docker-php-ext-install xml # ============================================ # БЛОК 11: Установка GD с конфигурацией # ============================================ RUN docker-php-ext-configure gd \ --with-jpeg \ --with-xpm \ --with-webp \ --with-freetype && \ docker-php-ext-install -j$(nproc) gd # ============================================ # БЛОК 12: Установка MongoDB через PECL # ============================================ RUN pecl install mongodb && \ docker-php-ext-enable mongodb # ============================================ # БЛОК 13: Настройка локали # ============================================ RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \ locale-gen en_US.UTF-8 && \ update-locale LANG=en_US.UTF-8 # ============================================ # БЛОК 14: Очистка и финальные права # ============================================ RUN chmod +x /usr/local/bin/* && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # ============================================ # Финальные настройки # ============================================ ENV LANG='en_US.UTF-8' \ LANGUAGE='en_US:en' \ LC_ALL='en_US.UTF-8' WORKDIR /var/www USER 1000:1000 RUN mkdir -p /var/www/first.loc/api/tmp CMD ["php-fpm"]