From cf9e15e88e32518a51e28fc8ca1c08ed93d68c66 Mon Sep 17 00:00:00 2001 From: Diego Dorgam Date: Fri, 8 Mar 2019 15:33:51 -0300 Subject: [PATCH 1/4] wordpress version 5.1 --- Dockerfile | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 93a7e88..432833d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM hacklab/php:7.2-apache MAINTAINER Hacklab -ARG WP_VERSION=5.0.3 +ARG WP_VERSION=5.1 COPY root/ / RUN a2enmod headers \ diff --git a/docker-compose.yml b/docker-compose.yml index 9d9f5af..e007d5e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '2' services: web: - image: hacklab/wordpress + image: diegodorgam/wordpress:latest environment: - WORDPRESS_DEBUG=true - WORDPRESS_DB_USER=the_db_user From 1f2ca06d35d90a2df5901bc63b0d2de92e3c383f Mon Sep 17 00:00:00 2001 From: Diego Dorgam Date: Mon, 8 Apr 2019 18:47:47 -0300 Subject: [PATCH 2/4] Auto install --- Dockerfile | 6 +++-- docker-compose.yml | 40 +++++++++++++++++++++++---------- root/entrypoint.sh | 22 ++++++++++++++++++ root/usr/local/bin/wp | 2 +- root/var/www/html/wp-config.php | 5 ++++- 5 files changed, 59 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 432833d..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.1 COPY root/ / RUN a2enmod headers \ diff --git a/docker-compose.yml b/docker-compose.yml index e007d5e..23c3491 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,21 +1,37 @@ -version: '2' +version: '3' services: - web: - image: diegodorgam/wordpress:latest + 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..5806390 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 +chgrp www-data uploads/ +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..ef03676 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,6 +24,8 @@ !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'); + + !defined('WP_CONTENT_URL') && define('WP_CONTENT_URL', getenv('WORDPRESS_CONTENT_URL') ?: '/wp-content'); if(!isset($table_prefix)) { $table_prefix = getenv('WORDPRESS_TABLE_PREFIX') ?: 'wp_'; From 43b50e2f51a4b36872941e1458cc3d3267f4e062 Mon Sep 17 00:00:00 2001 From: Diego Dorgam Date: Mon, 8 Apr 2019 18:50:59 -0300 Subject: [PATCH 3/4] add auto install documentation --- README.markdown | 6 ++++++ 1 file changed, 6 insertions(+) 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 From 082d1b0d1bb4fbfc8dbfc749a5bf57ffe758a5d4 Mon Sep 17 00:00:00 2001 From: Diego Dorgam Date: Tue, 9 Apr 2019 16:19:50 -0300 Subject: [PATCH 4/4] install plugins reduction --- root/entrypoint.sh | 2 +- root/var/www/html/wp-config.php | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/root/entrypoint.sh b/root/entrypoint.sh index 5806390..259ebd5 100755 --- a/root/entrypoint.sh +++ b/root/entrypoint.sh @@ -103,7 +103,7 @@ wp user update $WORDPRESS_USERNAME --first_name="${WORDPRESS_FIRST_NAME}" --last # Create uploads folder cd wp-content mkdir uploads -chgrp www-data uploads/ +chown -R www-data: * chmod 775 uploads/ # Update WordPress options diff --git a/root/var/www/html/wp-config.php b/root/var/www/html/wp-config.php index ef03676..a375b83 100644 --- a/root/var/www/html/wp-config.php +++ b/root/var/www/html/wp-config.php @@ -25,8 +25,6 @@ !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'); - !defined('WP_CONTENT_URL') && define('WP_CONTENT_URL', getenv('WORDPRESS_CONTENT_URL') ?: '/wp-content'); - if(!isset($table_prefix)) { $table_prefix = getenv('WORDPRESS_TABLE_PREFIX') ?: 'wp_'; }