From 559e71abb7f9deb142b39c392492d3c1483b89b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A8ve=20Caillault?= Date: Thu, 28 May 2026 07:50:58 +0200 Subject: [PATCH] Installation de Memcached. --- .env.example | 10 ++++++++-- docker/docker-compose.memcached.yml | 8 ++++++++ docker/docker-compose.yml | 1 + docker/server-php.dockerfile | 14 +++++++++++++- 4 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 docker/docker-compose.memcached.yml diff --git a/.env.example b/.env.example index 110e506..16905ec 100644 --- a/.env.example +++ b/.env.example @@ -5,6 +5,7 @@ COMPOSE_PROJECT_NAME="" COMPOSE_FILE_BASE="docker/docker-compose.yml" COMPOSE_FILE_APACHE="docker/docker-compose.apache-php.yml" COMPOSE_FILE_FRANKENPHP="docker/docker-compose.frankenphp.yml" +COMPOSE_FILE_MEMCACHED="docker/docker-compose.memcached.yml" COMPOSE_FILE_CRON="docker/docker-compose.cron.yml" COMPOSE_FILE_UPLOAD="docker/docker-compose.upload.yml" COMPOSE_FILE_MAILOG="docker/docker-compose.mailhog.yml" @@ -19,8 +20,7 @@ COMPOSE_FILE="${COMPOSE_FILE_BASE}" COMPOSE_FILE_SERVER_PHP="${COMPOSE_FILE_APACHE}" # Exemple complet en local -# COMPOSE_FILE="${COMPOSE_FILE_BASE}:${COMPOSE_FILE_SERVER_PHP}:${COMPOSE_FILE_CRON}:${COMPOSE_FILE_UPLOAD}:${COMPOSE_FILE_MAILOG}:${COMPOSE_FILE_DEV}" - +# COMPOSE_FILE="${COMPOSE_FILE_BASE}:${COMPOSE_FILE_SERVER_PHP}:${COMPOSE_FILE_MEMCACHED}:${COMPOSE_FILE_CRON}:${COMPOSE_FILE_UPLOAD}:${COMPOSE_FILE_MAILOG}:${COMPOSE_FILE_DEV}" # Pour utiliser Let's Encrypt : # COMPOSE_FILE="${COMPOSE_FILE_BASE}:${COMPOSE_FILE_LETS_ENCRYPT}" @@ -53,6 +53,12 @@ FRANKENPHP_ROOT_PATH="/app/" # Image du serveur PHP SERVER_PHP_IMAGE="${APACHE_PHP_IMAGE}" +#SERVER_PHP_IMAGE="${FRANKENPHP_IMAGE}" + +# Image pour Memcached +WITH_MEMCACHED="true" +MEMCACHED_IMAGE="memcached:latest" +MEMCACHED_PORT="11211:11211" # Nom du fichier de configuration OPcache à utiliser OPCACHE_CONFIG_FILE="opcache.dev.ini" diff --git a/docker/docker-compose.memcached.yml b/docker/docker-compose.memcached.yml new file mode 100644 index 0000000..59c2e80 --- /dev/null +++ b/docker/docker-compose.memcached.yml @@ -0,0 +1,8 @@ +services: + + memcached: + restart: unless-stopped + container_name: ${CONTAINER_PREFIX}_memcached + image: ${MEMCACHED_IMAGE} + ports: + - ${MEMCACHED_PORT} \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 333068d..741154d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -32,6 +32,7 @@ services: context: ${PWD} args: SERVER_PHP_IMAGE: ${SERVER_PHP_IMAGE} + WITH_MEMCACHED: ${WITH_MEMCACHED} dockerfile: ${PWD}/docker/server-php.dockerfile labels: diff --git a/docker/server-php.dockerfile b/docker/server-php.dockerfile index 914e57d..035a4b2 100644 --- a/docker/server-php.dockerfile +++ b/docker/server-php.dockerfile @@ -33,7 +33,19 @@ RUN apt-get update && apt-get install -y \ --with-webp \ --with-avif \ && docker-php-ext-install zip pdo_mysql gd sockets intl \ - && apt-get clean \ + # Installation de PIE (PHP Installer for Extensions : https://github.com/php/pie) + && curl -fL --output /tmp/pie.phar https://github.com/php/pie/releases/latest/download/pie.phar \ + && mv /tmp/pie.phar /usr/local/bin/pie \ + && chmod +x /usr/local/bin/pie + +# Installation de Memcached +ARG WITH_MEMCACHED=false +RUN if [ "$WITH_MEMCACHED" = "true" ]; then \ + apt-get install -y libmemcached-dev; \ + pie install php-memcached/php-memcached; \ + fi + +RUN apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN usermod -u 1000 www-data && groupmod -g 1000 www-data