FROM php:8.4-fpm # Проверка файлов в /etc/apt/ RUN ls -l /etc/apt/ # Замена репозитория на Yandex Mirror RUN if [ -d /etc/apt/sources.list.d/ ]; then \ sed -i 's/deb.debian.org/mirror.yandex.ru/g' /etc/apt/sources.list.d/*; \ fi # Устанавливаем системные зависимости RUN apt-get update && apt-get install -y \ git \ unzip \ curl \ libpq-dev \ libicu-dev \ libzip-dev \ libonig-dev \ libfreetype6-dev \ libjpeg-dev \ libpng-dev \ zlib1g-dev \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Установка и конфигурация GD RUN apt-get update && apt-get install -y libfreetype6-dev libjpeg-dev libpng-dev RUN docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ RUN docker-php-ext-install -j$(nproc) gd # Установка остальных PHP-расширений RUN docker-php-ext-install pdo pdo_pgsql mbstring intl zip exif sockets opcache # Установка и включение APCu RUN pecl install apcu && docker-php-ext-enable apcu # Установка и включение Redis RUN pecl install redis && docker-php-ext-enable redis # Установка Composer RUN curl -sS https://getcomposer.org/installer -o composer-setup.php && \ php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ rm composer-setup.php # Настройка рабочей директории WORKDIR /var/www/html # Передача ID пользователя и группы через ARG ARG USER_ID=1000 ARG GROUP_ID=1000 # Создание группы и пользователя www-data RUN getent group www-data || groupadd -g ${GROUP_ID} www-data RUN id -u www-data || useradd -u ${USER_ID} -g www-data -ms /bin/bash www-data # Создание директорий и установка прав RUN mkdir -p storage/logs storage/framework/views bootstrap/cache && \ chown -R www-data:www-data /var/www/html && \ chmod -R 775 storage/logs storage/framework/views bootstrap/cache # Копирование файлов проекта COPY . /var/www/html # Переключение пользователя USER www-data # Открываем порт EXPOSE 9000 # Команда для запуска PHP-FPM CMD ["php-fpm"]