From 0167334910d6f7c56c9dc9d68c9773dd35207ef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Wed, 14 Oct 2020 22:14:41 +0200 Subject: [PATCH] feat: add support for PHP preloading --- Dockerfile | 6 +++--- docker-compose.yml | 6 ++---- docker/php/conf.d/{symfony.ini => symfony.dev.ini} | 0 docker/php/conf.d/symfony.prod.ini | 14 ++++++++++++++ 4 files changed, 19 insertions(+), 7 deletions(-) rename docker/php/conf.d/{symfony.ini => symfony.dev.ini} (100%) create mode 100644 docker/php/conf.d/symfony.prod.ini diff --git a/Dockerfile b/Dockerfile index ebab086..4d5f4be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact ARG PHP_VERSION=7.4 -ARG NGINX_VERSION=1.17 +ARG NGINX_VERSION=1.19 # "php" stage FROM php:${PHP_VERSION}-fpm-alpine AS symfony_php @@ -20,7 +20,7 @@ RUN apk add --no-cache \ jq \ ; -ARG APCU_VERSION=5.1.18 +ARG APCU_VERSION=5.1.19 RUN set -eux; \ apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ @@ -56,7 +56,7 @@ RUN set -eux; \ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer RUN ln -s $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini -COPY docker/php/conf.d/symfony.ini $PHP_INI_DIR/conf.d/symfony.ini +COPY docker/php/conf.d/symfony.prod.ini $PHP_INI_DIR/conf.d/symfony.ini RUN set -eux; \ { \ diff --git a/docker-compose.yml b/docker-compose.yml index 70c6699..182aa68 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,11 +17,9 @@ services: volumes: # Comment out the next line in production - ./:/srv/app:rw,cached + - ./docker/php/conf.d/symfony.dev.ini:/usr/local/etc/php/conf.d/symfony.ini # If you develop on Linux, comment out the following volumes to just use bind-mounted project directory from host - - /srv/app/var/ - - /srv/app/var/cache/ - - /srv/app/var/logs/ - - /srv/app/var/sessions/ + # - ./api/var:/srv/app/var:rw environment: - SYMFONY_VERSION diff --git a/docker/php/conf.d/symfony.ini b/docker/php/conf.d/symfony.dev.ini similarity index 100% rename from docker/php/conf.d/symfony.ini rename to docker/php/conf.d/symfony.dev.ini diff --git a/docker/php/conf.d/symfony.prod.ini b/docker/php/conf.d/symfony.prod.ini new file mode 100644 index 0000000..4bb13b6 --- /dev/null +++ b/docker/php/conf.d/symfony.prod.ini @@ -0,0 +1,14 @@ +apc.enable_cli = 1 +date.timezone = UTC +session.auto_start = Off +short_open_tag = Off + +# https://symfony.com/doc/current/performance.html +opcache.interned_strings_buffer = 16 +opcache.max_accelerated_files = 20000 +opcache.memory_consumption = 256 +opcache.validate_timestamps = 0 +realpath_cache_size = 4096K +realpath_cache_ttl = 600 +opcache.preload_user=www-data +opcache.preload=/srv/app/var/cache/prod/App_KernelProdContainer.preload.php