diff --git a/config.json b/config.json new file mode 100644 index 0000000..fc204f7 --- /dev/null +++ b/config.json @@ -0,0 +1,5 @@ +{ + "features": { + "buildkit": true + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c7fbd91 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,42 @@ +services: + wordpress: + build: . + container_name: imc_wp + restart: unless-stopped + ports: + - "8080:80" + environment: + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: wp_user + WORDPRESS_DB_PASSWORD: wp_pass + WORDPRESS_DB_NAME: wp_db + volumes: + # Persist only uploads; everything else stays in the image + - ./wp-data/uploads:/var/www/html/wp-content/uploads + # Optional custom PHP config + - ./config/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro + # <-- NEW: expose the local images folder + - ./theme/images:/var/www/html/wp-content/uploads/theme-images:ro + db: + image: mariadb:10.11 + container_name: imc_db + restart: unless-stopped + environment: + MYSQL_RANDOM_ROOT_PASSWORD: "1" + MYSQL_DATABASE: wp_db + MYSQL_USER: wp_user + MYSQL_PASSWORD: wp_pass + volumes: + - ./db-data:/var/lib/mysql + + # Optional helper for ad‑hoc WP‑CLI commands + wpcli: + image: wordpress:cli + depends_on: + - wordpress + - db + volumes: + - ./wp-data:/var/www/html + entrypoint: ["wp"] + environment: + WP_CLI_URL: http://localhost:8080 diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..c425674 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -e + +# If the config file does not exist, generate it from the env vars +if [ ! -f /var/www/html/wp-config.php ]; then + wp config create \ + --dbname="${WORDPRESS_DB_NAME}" \ + --dbuser="${WORDPRESS_DB_USER}" \ + --dbpass="${WORDPRESS_DB_PASSWORD}" \ + --dbhost="${WORDPRESS_DB_HOST}" \ + --path=/var/www/html \ + --allow-root +fi + +# Hand over to the official WordPress entrypoint +exec docker-entrypoint.sh "$@"