FROM php:8.4-fpm-alpine ENV TZ="Europe/Prague" \ PHP_OPCACHE_ENABLE=1 \ PHP_OPCACHE_VALIDATE_TIMESTAMPS=0 \ PHP_OPCACHE_REVALIDATE_FREQ=0 \ PHP_OPCACHE_MEMORY_CONSUMPTION=192 \ PHP_OPCACHE_MAX_ACCELERATED_FILES=20000 \ PHP_OPCACHE_MAX_WASTED_PERCENTAGE=10 \ PHP_OPCACHE_INTERNED_STRINGS_BUFFER=16 \ APP_ENV=production \ APP_DEBUG=false RUN apk add --no-cache \ tzdata \ bash \ ca-certificates \ libpq \ libzip \ imagemagick \ imagemagick-dev \ librsvg \ freetype \ libjpeg-turbo \ libpng \ icu \ oniguruma \ libxml2 RUN apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ postgresql-dev \ libzip-dev \ freetype-dev \ libjpeg-turbo-dev \ libpng-dev \ icu-dev \ libxml2-dev \ linux-headers RUN docker-php-ext-configure \ gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) \ pdo_mysql \ pdo_pgsql \ pgsql \ zip \ bcmath \ soap \ gd \ intl \ bcmath \ opcache \ sockets \ pcntl RUN pecl install imagick \ && docker-php-ext-enable imagick RUN apk del .build-deps RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \ && echo "date.timezone=${TZ}" > "$PHP_INI_DIR/conf.d/99-timezone.ini" RUN { \ echo "memory_limit=256M"; \ echo "upload_max_filesize=100M"; \ echo "post_max_size=100M"; \ echo "realpath_cache_size=4096K"; \ echo "realpath_cache_ttl=600"; \ } > "$PHP_INI_DIR/conf.d/99-laravel.ini" RUN { \ echo "[opcache]"; \ echo "opcache.enable=${PHP_OPCACHE_ENABLE}"; \ echo "opcache.enable_cli=0"; \ echo "opcache.validate_timestamps=${PHP_OPCACHE_VALIDATE_TIMESTAMPS}"; \ echo "opcache.revalidate_freq=${PHP_OPCACHE_REVALIDATE_FREQ}"; \ echo "opcache.memory_consumption=${PHP_OPCACHE_MEMORY_CONSUMPTION}"; \ echo "opcache.interned_strings_buffer=${PHP_OPCACHE_INTERNED_STRINGS_BUFFER}"; \ echo "opcache.max_accelerated_files=${PHP_OPCACHE_MAX_ACCELERATED_FILES}"; \ echo "opcache.max_wasted_percentage=${PHP_OPCACHE_MAX_WASTED_PERCENTAGE}"; \ echo "opcache.save_comments=1"; \ } > "$PHP_INI_DIR/conf.d/10-opcache.ini"