# ============================================================================ # Образ PHP-FPM для защищённого Laravel-приложения (УЗ-1 / К1) # Меры: УКФ.1 (фиксированные версии), ОДТ (минимизация образа). # ============================================================================ FROM php:8.3-fpm-alpine AS base # Системные зависимости и расширения PHP (включая pgsql, redis, gd для проверок). RUN apk add --no-cache postgresql-dev oniguruma-dev icu-dev libzip-dev $PHPIZE_DEPS \ && docker-php-ext-install pdo_pgsql mbstring intl bcmath opcache zip \ && pecl install redis && docker-php-ext-enable redis \ && apk del $PHPIZE_DEPS # Рекомендуемая базовая конфигурация PHP (УКФ.1, ОДТ.3). RUN { \ echo 'expose_php=Off'; \ echo 'display_errors=Off'; \ echo 'log_errors=On'; \ echo 'session.cookie_httponly=On'; \ echo 'session.cookie_secure=On'; \ echo 'session.use_strict_mode=On'; \ echo 'opcache.enable=1'; \ echo 'opcache.validate_timestamps=0'; \ } > /usr/local/etc/php/conf.d/zz-security.ini WORKDIR /var/www/app COPY --from=composer:2 /usr/bin/composer /usr/bin/composer # Установка зависимостей по зафиксированным версиям (мера ОПС.1, УКФ.1). COPY composer.json composer.lock ./ RUN composer install --no-dev --no-interaction --no-progress --prefer-dist --no-scripts COPY . . RUN composer dump-autoload --optimize \ # Веб-сервер не должен иметь прав записи вне storage и bootstrap/cache (ЗИС). && chown -R www-data:www-data storage bootstrap/cache \ && chmod -R 775 storage bootstrap/cache USER www-data