Files
laravel-gost-template/deploy/Dockerfile
2026-06-24 17:20:43 +09:00

41 lines
1.8 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================================================
# Образ 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