From c690d572182a2129f71ecbe40c85818c66e94a7e Mon Sep 17 00:00:00 2001 From: Flavio Heleno Date: Sun, 20 Mar 2022 15:04:58 -0300 Subject: [PATCH] Add Redis support --- .env.dist | 7 +++++++ app/dependencies.php | 7 +++++-- app/settings.php | 7 +++++-- composer.json | 1 + composer.lock | 5 +++-- docker/php.Dockerfile | 33 +++++++++++++++++++++------------ 6 files changed, 42 insertions(+), 18 deletions(-) diff --git a/.env.dist b/.env.dist index 5c48a873..2958e1e4 100644 --- a/.env.dist +++ b/.env.dist @@ -2,8 +2,15 @@ POSTGRES_USER= POSTGRES_PASSWORD= POSTGRES_DB= POSTGRES_HOST= +POSTGRES_PORT= + AMQP_USER= AMQP_PASS= AMQP_HOST= +AMQP_PORT= + +REDIS_HOST= +REDIS_PORT= + PHP_ENV= DOCKER= diff --git a/app/dependencies.php b/app/dependencies.php index e3b38321..bad97fcd 100644 --- a/app/dependencies.php +++ b/app/dependencies.php @@ -59,11 +59,14 @@ if ($settings->has('cache.redis')) { $dsn = parse_url($settings->getString('cache.redis')); + $drivers[] = new Redis( [ 'servers' => [ - 'server' => $dsn['host'] ?? 'localhost', - 'port' => $dsn['port'] ?? 6379 + [ + 'server' => $dsn['host'] ?? 'localhost', + 'port' => $dsn['port'] ?? 6379 + ] ] ] ); diff --git a/app/settings.php b/app/settings.php index 08079fb0..5f90b61b 100644 --- a/app/settings.php +++ b/app/settings.php @@ -13,11 +13,14 @@ SettingsInterface::class => function () { return new Settings( [ + 'cache' => [ + 'redis' => "redis://${_ENV['REDIS_HOST']}:${_ENV['REDIS_PORT']}" + ], 'db' => [ - 'dsn' => "pgsql://${_ENV['POSTGRES_USER']}:${_ENV['POSTGRES_PASSWORD']}@${_ENV['POSTGRES_HOST']}/${_ENV['POSTGRES_DB']}" + 'dsn' => "pgsql://${_ENV['POSTGRES_USER']}:${_ENV['POSTGRES_PASSWORD']}@${_ENV['POSTGRES_HOST']}:${_ENV['POSTGRES_PORT']}/${_ENV['POSTGRES_DB']}" ], 'queue' => [ - 'dsn' => "amqp://${_ENV['AMQP_USER']}:${_ENV['AMQP_PASS']}@${_ENV['AMQP_HOST']}" + 'dsn' => "amqp://${_ENV['AMQP_USER']}:${_ENV['AMQP_PASS']}@${_ENV['AMQP_HOST']}:${_ENV['AMQP_PORT']}" ], 'displayErrorDetails' => (isset($_ENV['PHP_ENV']) === false || $_ENV['PHP_ENV'] === 'development'), 'logError' => true, diff --git a/composer.json b/composer.json index 7ce9cb99..2782941a 100644 --- a/composer.json +++ b/composer.json @@ -33,6 +33,7 @@ "php": ">=8.1", "ext-pdo": "*", "ext-posix": "*", + "ext-redis": "*", "badges/poser": "^2.3", "composer/metadata-minifier": "^1.0", "composer/semver": "^3.2", diff --git a/composer.lock b/composer.lock index 915627cd..f705fff7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8fabc4549faa2aa176c74a366e2ce8e1", + "content-hash": "59dd7d00fdf73719c4ed7c4700ec8c5c", "packages": [ { "name": "badges/poser", @@ -8378,7 +8378,8 @@ "platform": { "php": ">=8.1", "ext-pdo": "*", - "ext-posix": "*" + "ext-posix": "*", + "ext-redis": "*" }, "platform-dev": [], "plugin-api-version": "2.2.0" diff --git a/docker/php.Dockerfile b/docker/php.Dockerfile index 5104c67c..d578bb29 100644 --- a/docker/php.Dockerfile +++ b/docker/php.Dockerfile @@ -17,10 +17,7 @@ RUN apk add --no-cache $PHPIZE_DEPS curl-dev freetype-dev libjpeg-turbo-dev libp #============================================ # Built-in Extensions #============================================ -RUN docker-php-ext-install -j$(nproc) zip && \ - docker-php-ext-install -j$(nproc) pcntl && \ - docker-php-ext-install -j$(nproc) sockets && \ - docker-php-ext-install -j$(nproc) pdo_pgsql && \ +RUN docker-php-ext-install -j$(nproc) dom && \ docker-php-ext-configure gd \ --enable-gd \ --with-freetype \ @@ -29,8 +26,11 @@ RUN docker-php-ext-install -j$(nproc) zip && \ --with-xpm && \ docker-php-ext-install -j$(nproc) gd && \ docker-php-ext-install -j$(nproc) opcache && \ + docker-php-ext-install -j$(nproc) pcntl && \ + docker-php-ext-install -j$(nproc) pdo_pgsql && \ docker-php-ext-install -j$(nproc) simplexml && \ - docker-php-ext-install -j$(nproc) dom + docker-php-ext-install -j$(nproc) sockets && \ + docker-php-ext-install -j$(nproc) zip #============================================ # Third party Extensions @@ -42,6 +42,13 @@ RUN docker-php-source extract && \ docker-php-ext-install -j$(nproc) amqp && \ docker-php-source delete +RUN docker-php-source extract && \ + wget -O redis.tar.gz https://github.com/phpredis/phpredis/archive/refs/tags/5.3.7.tar.gz && \ + mkdir /usr/src/php/ext/redis && \ + tar --extract --file redis.tar.gz --directory /usr/src/php/ext/redis --strip 1 && \ + docker-php-ext-install -j$(nproc) redis && \ + docker-php-source delete + #============================================ # Opcache #============================================ @@ -106,12 +113,13 @@ RUN apk add --no-cache libpq --repository=https://dl-cdn.alpinelinux.org/alpine/ #============================================ # CLI Extensions #============================================ -RUN docker-php-ext-enable zip && \ +RUN docker-php-ext-enable amqp && \ + docker-php-ext-enable opcache && \ docker-php-ext-enable pcntl && \ - docker-php-ext-enable sockets && \ docker-php-ext-enable pdo_pgsql && \ - docker-php-ext-enable opcache && \ - docker-php-ext-enable amqp + docker-php-ext-enable redis && \ + docker-php-ext-enable sockets && \ + docker-php-ext-enable zip #============================================ # Other dependencies @@ -181,12 +189,13 @@ RUN wget -O /usr/local/bin/php-fpm-healthcheck https://raw.githubusercontent.com #============================================ # FPM Extensions #============================================ -RUN docker-php-ext-enable zip && \ - docker-php-ext-enable pdo_pgsql && \ +RUN docker-php-ext-enable dom && \ docker-php-ext-enable gd && \ docker-php-ext-enable opcache && \ + docker-php-ext-enable pdo_pgsql && \ + docker-php-ext-enable redis && \ docker-php-ext-enable simplexml && \ - docker-php-ext-enable dom + docker-php-ext-enable zip #============================================ # User