diff --git a/app/AppKernel.php b/app/AppKernel.php index 0e9d62e4b..b6eefb095 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -77,6 +77,7 @@ class AppKernel extends Kernel $loader->load(function (ContainerBuilder $container) { $this->processDatabaseParameters($container); + $this->defineRedisUrlEnvVar($container); }); } @@ -112,4 +113,29 @@ class AppKernel extends Kernel $container->setParameter('database_port', (string) $container->getParameter('database_port')); $container->setParameter('database_socket', (string) $container->getParameter('database_socket')); } + + private function defineRedisUrlEnvVar(ContainerBuilder $container) + { + $scheme = $container->getParameter('redis_scheme'); + $host = $container->getParameter('redis_host'); + $port = $container->getParameter('redis_port'); + $path = $container->getParameter('redis_path'); + $password = $container->getParameter('redis_password'); + + $url = $scheme . '://'; + + if ($password) { + $url .= $password . '@'; + } + + $url .= $host; + + if ($port) { + $url .= ':' . $port; + } + + $url .= '/' . ltrim($path, '/'); + + $container->setParameter('env(REDIS_URL)', $url); + } } diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist index db23ba4d6..e41091752 100644 --- a/app/config/parameters.yml.dist +++ b/app/config/parameters.yml.dist @@ -55,7 +55,7 @@ parameters: rabbitmq_prefetch_count: 10 # Redis processing - redis_scheme: tcp + redis_scheme: redis redis_host: localhost redis_port: 6379 redis_path: null diff --git a/app/config/services.yml b/app/config/services.yml index 09eb22729..ea80f98e0 100644 --- a/app/config/services.yml +++ b/app/config/services.yml @@ -248,12 +248,7 @@ services: Predis\Client: arguments: - $parameters: - scheme: '%redis_scheme%' - host: '%redis_host%' - port: '%redis_port%' - path: '%redis_path%' - password: '%redis_password%' + $parameters: '%env(REDIS_URL)%' Wallabag\Event\Subscriber\SQLiteCascadeDeleteSubscriber: tags: diff --git a/docker/php/config/parameters.yml b/docker/php/config/parameters.yml index 249a0258d..747d6f419 100644 --- a/docker/php/config/parameters.yml +++ b/docker/php/config/parameters.yml @@ -40,7 +40,7 @@ parameters: rabbitmq_prefetch_count: ${RABBITMQ_PREFETCH_COUNT:-10} # Redis processing - redis_scheme: ${REDIS_SCHEME:-tcp} + redis_scheme: ${REDIS_SCHEME:-redis} redis_host: ${REDIS_HOST:-redis} redis_port: ${REDIS_PORT:-6379} redis_path: ${REDIS_PATH:-~} diff --git a/docker/php/env.example b/docker/php/env.example index 1eff4bcee..568668db1 100644 --- a/docker/php/env.example +++ b/docker/php/env.example @@ -7,6 +7,6 @@ DATABASE_PASSWORD=~ DATABASE_PATH='"%kernel.project_dir%/data/db/wallabag.sqlite"' DOMAIN_NAME=http://localhost:8000 SECRET=ch4n63m31fy0uc4n -PHP_SESSION_SAVE_PATH=tcp://redis:6379?database=2 +PHP_SESSION_SAVE_PATH=redis://redis:6379?database=2 PHP_SESSION_HANDLER=redis TRUSTED_PROXIES=0.0.0.0/0