diff --git a/srcs/docker-compose.yml b/srcs/docker-compose.yml index d614bb3..0c74b0b 100644 --- a/srcs/docker-compose.yml +++ b/srcs/docker-compose.yml @@ -42,6 +42,15 @@ services: aliases: - $DOMAIN_NAME env_file: .env + redis: + restart: on-failure + build: + context: ./requirements/bonus/redis + dockerfile: Dockerfile + networks: + - inception + secrets: + - redis_password wordpress: restart: on-failure depends_on: @@ -58,6 +67,7 @@ services: secrets: - db_password - admin_password + - redis_password env_file: .env adminer: restart: on-failure @@ -81,6 +91,8 @@ secrets: file: ../secrets/db_root_password.txt admin_password: file: ../secrets/credentials.txt + redis_password: + file: ../secrets/redis_password.txt networks: inception: diff --git a/srcs/requirements/bonus/redis/Dockerfile b/srcs/requirements/bonus/redis/Dockerfile new file mode 100644 index 0000000..683e7aa --- /dev/null +++ b/srcs/requirements/bonus/redis/Dockerfile @@ -0,0 +1,14 @@ +FROM alpine:3.21.2 + +LABEL org.opencontainers.image.authors="alier@student.42mulhouse.fr" + +RUN apk add redis + +HEALTHCHECK --start-period=5s \ + CMD [ "$(cat /run/secrets/redis_password | redis-cli --askpass ping)" = "PONG" ] + +COPY tools/setup_redis.sh /setup_redis.sh + +EXPOSE 6379 + +ENTRYPOINT ["sh", "setup_redis.sh"] \ No newline at end of file diff --git a/srcs/requirements/bonus/redis/tools/setup_redis.sh b/srcs/requirements/bonus/redis/tools/setup_redis.sh new file mode 100644 index 0000000..4a43ae2 --- /dev/null +++ b/srcs/requirements/bonus/redis/tools/setup_redis.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +echo "requirepass $(cat /run/secrets/redis_password) +bind * -::*" >> /etc/redis.conf + +exec redis-server /etc/redis.conf \ No newline at end of file diff --git a/srcs/requirements/wordpress/Dockerfile b/srcs/requirements/wordpress/Dockerfile index c982493..0e7b476 100644 --- a/srcs/requirements/wordpress/Dockerfile +++ b/srcs/requirements/wordpress/Dockerfile @@ -3,7 +3,7 @@ FROM alpine:3.21.2 LABEL org.opencontainers.image.authors="alier@student.42mulhouse.fr" RUN apk add php84 php84-phar php84-fpm php84-mysqli php84-iconv php84-curl php84-dom php84-exif \ - php84-fileinfo php84-pecl-imagick php84-mbstring php84-zip php84-gd php84-intl fcgi curl + php84-fileinfo php84-pecl-imagick php84-mbstring php84-zip php84-gd php84-intl php84-tokenizer fcgi curl RUN ln -s /usr/bin/php84 /usr/bin/php && \ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \ diff --git a/srcs/requirements/wordpress/tools/setup_wordpress.sh b/srcs/requirements/wordpress/tools/setup_wordpress.sh index 5d3a0c5..2f221b7 100644 --- a/srcs/requirements/wordpress/tools/setup_wordpress.sh +++ b/srcs/requirements/wordpress/tools/setup_wordpress.sh @@ -5,8 +5,14 @@ if [ ! -e '/var/www/wordpress/wp-config.php' ]; then cd /var/www/wordpress wp config create --dbname="$DB_DB" --dbuser="$DB_USER" --dbpass="$(cat /run/secrets/db_password)" --dbhost=mariadb + wp config set WP_REDIS_HOST "redis" + wp config set WP_REDIS_PORT "6379" + wp config set WP_REDIS_DATABASE "0" + wp config set WP_REDIS_PASSWORD "$(cat /run/secrets/redis_password)" wp core install --url="$DOMAIN_NAME" --title="$TITLE" --admin_user="$ADMIN_USER" --admin_email="$ADMIN_EMAIL" \ --admin_password="$(cat /run/secrets/admin_password)" + wp plugin install redis-cache --activate + wp redis enable wp option update siteurl "https://$DOMAIN_NAME" wp option update home "https://$DOMAIN_NAME" wp user create bob bob@example.org