ARG NODE_VERSION=24.12.0 FROM php:8.3-fpm-alpine AS phpbuild # Install base dependencies RUN apk add --no-cache \ bash \ curl \ git \ wget # Установка Composer COPY --from=composer:2.7.8 /usr/bin/composer /usr/bin/composer WORKDIR /var/www # Копирование необходимых файлов и изменение разрешений COPY . . RUN chown -R www:www /var/www \ && chmod -R 775 /var/www/storage \ && chmod -R 775 /var/www/bootstrap/cache # Установка php и зависимостей RUN composer install --no-dev --prefer-dist RUN chown -R www:www /var/www/vendor \ && chmod -R 775 /var/www/vendor FROM node:${NODE_VERSION} AS jsbuild WORKDIR /var/www COPY . . # Установка node.js зависимостей RUN npm install \ && npm run build FROM php:8.3-fpm-alpine # 1. Сначала обновляем и ставим минимальные зависимости RUN apk add --no-cache \ git \ wget \ gnupg # 2. Устанавливаем зависимости для самых важных расширений RUN apk add --no-cache \ libzip-dev \ libxml2-dev \ libonig-dev \ libicu-dev \ libcurl4-openssl-dev \ libssl-dev \ zlib1g-dev # 3. Устанавливаем БАЗОВЫЕ расширения (которые точно работают) RUN docker-php-ext-install \ bcmath \ intl \ mbstring \ zip \ opcache \ pdo # 4. Устанавливаем зависимости для GD RUN apk add --no-cache \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libwebp-dev # 5. Настраиваем и устанавливаем GD RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-install gd # 6. Устанавливаем зависимости для баз данных RUN apk add --no-cache \ libpq-dev # 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 apk add --no-cache \ libxslt-dev \ libexif-dev \ libffi-dev \ # 10. Устанавливаем системные расширения RUN docker-php-ext-install \ xsl \ exif \ ffi \ shmop # 11. Установка 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 # 12. Установка Composer #RUN curl -sS https://getcomposer.org/installer | php -- \ # --install-dir=/usr/local/bin --filename=composer # 13. Создание пользователя RUN groupadd -g 1000 www && \ useradd -u 1000 -ms /bin/ash -g www www # 14. Копирование файлов проекта COPY --chown=www:www --from=phpbuild /var/www /var/www COPY --chown=www:www --from=jsbuild /var/www/node_modules /var/www/node_modules WORKDIR /var/www # 15. Смена пользователя USER www # 16. Expose port 9000 и запуск php-fpm EXPOSE 9000 CMD ["php-fpm"]