diff --git a/Makefile b/Makefile index 9f4d643..1a8db1f 100644 --- a/Makefile +++ b/Makefile @@ -56,6 +56,6 @@ clean-nginx: docker container rm inception-nginx docker image rm inception-nginx -re: clean all +re: fclean all .PHONY: cms-build db-build websrv-build clean-db clean-nginx diff --git a/srcs/cmd/wordpress/entrypoint/entrypoint.go b/srcs/cmd/wordpress/entrypoint/entrypoint.go index d1f3e55..df27f1a 100644 --- a/srcs/cmd/wordpress/entrypoint/entrypoint.go +++ b/srcs/cmd/wordpress/entrypoint/entrypoint.go @@ -9,7 +9,6 @@ import ( "os/exec" "git.keyzox.me/42_adjoly/inception/internal/log" - "git.keyzox.me/42_adjoly/inception/internal/pass" ) func makeFpmConf() { @@ -49,25 +48,24 @@ func main() { makeFpmConf() - _, err := os.ReadFile("/var/www/wordpress/wp-config.php") - + dir, err := os.ReadDir("/docker-entrypoint.d") if err != nil { - _log.Log("note", "Configuring wordpress...") - content, err := os.ReadFile("/var/www/wordpress/wp-config-docker.php") - if err != nil { - log.Fatal(err) - } - res := bytes.Replace([]byte(content), []byte("put your unique phrase here"), []byte(pass.GenStrPass(32)), -1) - if err := os.WriteFile("/var/www/wordpress/wp-config.php", res, 0660); err != nil { - log.Fatal(err) - } - cmd := exec.Command("chown", "www-data:www-data", "/var/www/wordpress/wp-config.php") + log.Fatal(err) + } + _log.Log("note", "Running entrypoint scripts...") + for _, v := range dir { + os.Chmod("/docker-entrypoint.d/" + v.Name(), 0755) + cmd := exec.Command("/docker-entrypoint.d/" + v.Name()) + cmd.Env = os.Environ() cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + cmd.Stdin = os.Stdin if err := cmd.Run(); err != nil { - log.Fatal(err) + fmt.Printf("Error running script(%s): %v\n", v.Name(), err) + os.Exit(1) } } + } _log.Log("note", "Starting container") diff --git a/srcs/configs/wordpress/entry/configure-redis.sh b/srcs/configs/wordpress/entry/configure-redis.sh new file mode 100755 index 0000000..1a24852 --- /dev/null +++ b/srcs/configs/wordpress/entry/configure-redis.sh @@ -0,0 +1 @@ +#!/bin/sh diff --git a/srcs/configs/wordpress/entry/configure-wp.sh b/srcs/configs/wordpress/entry/configure-wp.sh new file mode 100755 index 0000000..9b6d171 --- /dev/null +++ b/srcs/configs/wordpress/entry/configure-wp.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +WP_DIR="/var/www/wordpress" + +if [ -f "${WP_DIR}/wp-config.php" ]; then + echo "Wordpress already configured, skipping installation" +else + echo "Confiruring wordpress..." + sleep 1 + echo $TZ + wp --allow-root core config --dbname=${WP_DB_NAME} --dbuser=${WP_DB_USER} --dbpass=${WP_DB_PASS} --dbhost=${WP_DB_HOST} --dbprefix=wp_ --path=${WP_DIR} + wp --allow-root core install --url=https://${WP_URL} --title="${WP_TITLE}" --admin_user=${WP_ADMIN_USER} --admin_password=${WP_ADMIN_PASS} --admin_email=${WP_ADMIN_EMAIL} --path=${WP_DIR} + wp option update blog_public ${WP_SEARCH_ENGINE_VISIBILITY} --allow-root +fi diff --git a/srcs/docker-compose.yml b/srcs/docker-compose.yml index 67bdb12..f10299f 100644 --- a/srcs/docker-compose.yml +++ b/srcs/docker-compose.yml @@ -45,21 +45,23 @@ services: db: condition: service_healthy environment: - - WORDPRESS_DB_NAME=knl - - WORDPRESS_DB_USER=kanel - - WORDPRESS_DB_PASSWORD=alpine - - WORDPRESS_DB_HOST=db - - WORDPRESS_ADMIN_EMAIL=contact@kanel.ovh - - WORDPRESS_ADMIN_USER=kanel - - WORDPRESS_ADMIN_PASS=alpine - - WORDPRESS_SITE_TITLE='Kanel supremacy' - - WORDPRESS_SEARCH_ENGINE_VISIBILITY=false + - WP_DB_NAME=knl + - WP_DB_USER=kanel + - WP_DB_PASS=alpine + - WP_DB_HOST=db + - WP_ADMIN_EMAIL=contact@kanel.ovh + - WP_ADMIN_USER=kanel + - WP_ADMIN_PASS=alpine + - WP_URL=localhost:8443 + - WP_TITLE=Kanel Supremacy + - WP_SEARCH_ENGINE_VISIBILITY=false - PHP_MEMORY_LIMIT="512M" - PHP_MAX_UPLOAD="50M" - PHP_PORT=9000 - TZ=Europe/Paris volumes: - wp-site:/var/www/wordpress + - ./configs/wordpress/entry:/docker-entrypoint.d restart: unless-stopped db: diff --git a/srcs/docker/wordpress/Dockerfile b/srcs/docker/wordpress/Dockerfile index 72a4a77..c09487f 100644 --- a/srcs/docker/wordpress/Dockerfile +++ b/srcs/docker/wordpress/Dockerfile @@ -11,22 +11,33 @@ COPY go.mod /build/go.mod COPY cmd /build/cmd COPY internal /build/internal COPY docker/wordpress/www-docker.conf /www-docker.conf -COPY docker/wordpress/wp-config-docker.php /var/www/wordpress/wp-config-docker.php -RUN apk add --no-cache go curl php84-mysqli php84-fpm tzdata fcgi \ +RUN apk add --no-cache go curl tzdata fcgi \ + php84-phar php84-xml php84-curl php84-zip \ + php84-intl php84-mbstring php84-iconv \ + php84 php84-mysqli php84-fpm php84-json \ + php84-zlib php84-session php84-dom \ + php84-xmlreader php84-pdo php84-gd \ + php84-opcache php84-ctype \ && cd /build \ + && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ + && chmod +x wp-cli.phar \ + && mv wp-cli.phar /usr/local/bin/wp \ && go build git.keyzox.me/42_adjoly/inception/cmd/wordpress/entrypoint \ && cp /build/entrypoint /docker-entrypoint \ && chmod +x /docker-entrypoint \ && apk del go \ && rm -Rf /build \ - && mkdir -p /usr/src/wordpress + && mkdir /docker-entrypoint.d + +RUN cp /usr/bin/php84 /usr/bin/php VOLUME /var/www/wordpress +VOLUME /docker-entrypoint.d WORKDIR /var/www -RUN version='6.7.1' \ +RUN version='6.7.2' \ && curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz" \ && apk del curl \ && rm -rf /var/cache/apk/* \ diff --git a/srcs/docker/wordpress/wp-config-docker.php b/srcs/docker/wordpress/wp-config-docker.php deleted file mode 100644 index e42bfae..0000000 --- a/srcs/docker/wordpress/wp-config-docker.php +++ /dev/null @@ -1,174 +0,0 @@ -set_role( 'administrator' ); - } -} -add_action( 'init', 'setup_admin_user' ); - -/** - * Custom script to set up search engine visibility - */ -function setup_search_engine_visibility() { - if ( get_option( 'blog_public' ) === '1' ) { - update_option( 'blog_public', !WP_SEARCH_ENGINE_VISIBILITY ); - } -} -add_action( 'init', 'setup_search_engine_visibility' );