diff --git a/Dockerfile b/Dockerfile index 93a7e88..54fc2f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,9 @@ FROM hacklab/php:7.2-apache -MAINTAINER Hacklab +LABEL maintainer="Diego Dorgam" +LABEL creator="Hacklab" + +ARG WP_VERSION=5.1.1 -ARG WP_VERSION=5.0.3 COPY root/ / RUN a2enmod headers \ diff --git a/README.markdown b/README.markdown index 07f4c86..d0cc9a9 100644 --- a/README.markdown +++ b/README.markdown @@ -33,6 +33,12 @@ You can override wp-config.php values by using environment variables. Actually, | WORDPRESS_TABLE_PREFIX | wp_ | | WORDPRESS_HOME | `` | | WORDPRESS_SITEURL | `` | +| WORDPRESS_USERNAME | admin | +| WORDPRESS_PASSWORD | changeme | +| WORDPRESS_EMAIL | email@change.me | +| WORDPRESS_FIRST_NAME | WordPress | +| WORDPRESS_LAST_NAME | Administrator | +| WORDPRESS_BLOG_NAME | My Docker Blog | ## Overriding variables not defined on wp-config.php diff --git a/docker-compose.yml b/docker-compose.yml index 9d9f5af..23c3491 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,21 +1,37 @@ -version: '2' +version: '3' services: - web: - image: hacklab/wordpress + wordpress: + build: . + image: wordpress:5.1.1 environment: - WORDPRESS_DEBUG=true - - WORDPRESS_DB_USER=the_db_user - - WORDPRESS_DB_PASSWORD=the_db_pass - - WORDPRESS_DB_NAME=the_db_name + - WORDPRESS_DB_HOST=mariadb + - WORDPRESS_DB_PORT=3306 + - WORDPRESS_DB_NAME=wordpress + - WORDPRESS_DB_USER=wordpress + - WORDPRESS_DB_PASSWORD=wordpress + - WORDPRESS_USERNAME=admin + - WORDPRESS_PASSWORD=changeme + - WORDPRESS_EMAIL=email@change.me + - WORDPRESS_FIRST_NAME=WordPress + - WORDPRESS_LAST_NAME=Administrator + - WORDPRESS_BLOG_NAME=My Docker Blog + - WORDPRESS_SITEURL=http://localhost + - WORDPRESS_HOME=http://localhost + - WORDPRESS_TABLE_PREFIX=wp_ ports: - "80:80" + depends_on: + - mariadb - mysql: - image: mariadb + mariadb: + image: mariadb:latest environment: - - MYSQL_USER=the_db_user - - MYSQL_PASSWORD=the_db_pass - - MYSQL_DATABASE=the_db_name - - MYSQL_ROOT_PASSWORD=the_root_pass + - MYSQL_USER=wordpress + - MYSQL_PASSWORD=wordpress + - MYSQL_DATABASE=wordpress + - MYSQL_ROOT_PASSWORD=wordpress - TERM=xterm + volumes: + - ./data:/var/lib/mysql:rw diff --git a/root/entrypoint.sh b/root/entrypoint.sh index 6bc07b5..259ebd5 100755 --- a/root/entrypoint.sh +++ b/root/entrypoint.sh @@ -93,4 +93,26 @@ for f in /docker-entrypoint-extra/*; do echo done +# Install WordPress +cd /var/www/html +#wp core config --dbhost=$WORDPRESS_DB_HOST --dbname=$WORDPRESS_DB_NAME --dbuser=$WORDPRESS_DB_USER --dbpass=$WORDPRESS_DB_PASSWORD --dbprefix=$WORDPRESS_TABLE_PREFIX +chmod 644 wp-config.php +wp core install --url=$WORDPRESS_SITEURL --title="${WORDPRESS_BLOG_NAME}" --admin_name=$WORDPRESS_USERNAME --admin_password="${WORDPRESS_PASSWORD}" --admin_email="${WORDPRESS_EMAIL}" +wp user update $WORDPRESS_USERNAME --first_name="${WORDPRESS_FIRST_NAME}" --last_name="${WORDPRESS_LAST_NAME}" + +# Create uploads folder +cd wp-content +mkdir uploads +chown -R www-data: * +chmod 775 uploads/ + +# Update WordPress options +wp option update permalink_structure '/%postname%/' +wp option update default_ping_status 'closed' +wp option update default_pingback_flag '0' + +# Install some usefull plugins +wp plugin install all-in-one-wp-security-and-firewall w3-total-cache --activate +#wp plugin install jetpack wordpress-seo regenerate-thumbnails cloudflare + exec "$@" diff --git a/root/usr/local/bin/wp b/root/usr/local/bin/wp index 5487308..ba5d9b8 100755 --- a/root/usr/local/bin/wp +++ b/root/usr/local/bin/wp @@ -1,3 +1,3 @@ #!/bin/bash PAGER=cat -/usr/local/bin/php /opt/wp-cli/wp-cli.phar --allow-root $@ +/usr/local/bin/php /opt/wp-cli/wp-cli.phar --allow-root "$@" diff --git a/root/var/www/html/wp-config.php b/root/var/www/html/wp-config.php index 0466e13..a375b83 100644 --- a/root/var/www/html/wp-config.php +++ b/root/var/www/html/wp-config.php @@ -6,7 +6,8 @@ !defined('DB_USER') && define('DB_USER', getenv('WORDPRESS_DB_USER') ?: 'wordpress'); !defined('DB_NAME') && define('DB_NAME', getenv('WORDPRESS_DB_NAME') ?: 'wordpress'); !defined('DB_PASSWORD') && define('DB_PASSWORD', getenv('WORDPRESS_DB_PASSWORD') ?: 'wordpress'); - !defined('DB_HOST') && define('DB_HOST', getenv('WORDPRESS_DB_HOST') ?: 'mysql'); + !defined('DB_HOST') && define('DB_HOST', getenv('WORDPRESS_DB_HOST') ?: 'mariadb'); + !defined('DB_PORT') && define('DB_PORT', getenv('WORDPRESS_DB_PORT') ?: '3306'); !defined('DB_CHARSET') && define('DB_CHARSET', getenv('WORDPRESS_DB_CHARSET') ?: 'utf8'); !defined('DB_COLLATE') && define('DB_COLLATE', getenv('WORDPRESS_DB_COLLATE') ?: ''); @@ -23,7 +24,7 @@ !defined('WP_DEBUG') && define('WP_DEBUG', getenv('WORDPRESS_DEBUG') === 'true'); !defined('WP_DEBUG_LOG') && define('WP_DEBUG_LOG', getenv('WORDPRESS_DEBUG_LOG') === 'true'); !defined('WP_DEBUG_DISPLAY') && define('WP_DEBUG_DISPLAY', getenv('WORDPRESS_DEBUG_DISPLAY') === 'true'); - + if(!isset($table_prefix)) { $table_prefix = getenv('WORDPRESS_TABLE_PREFIX') ?: 'wp_'; }