Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
FROM hacklab/php:7.2-apache
MAINTAINER Hacklab <[email protected]>
LABEL maintainer="Diego Dorgam<[email protected]>"
LABEL creator="Hacklab<[email protected]>"

ARG WP_VERSION=5.1.1

ARG WP_VERSION=5.0.3
COPY root/ /

RUN a2enmod headers \
Expand Down
6 changes: 6 additions & 0 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ You can override wp-config.php values by using environment variables. Actually,
| WORDPRESS_TABLE_PREFIX | wp_ |
| WORDPRESS_HOME | `<?= $_SERVER['SERVER_NAME']; ?>` |
| WORDPRESS_SITEURL | `<?= $_SERVER['SERVER_NAME']; ?>` |
| WORDPRESS_USERNAME | admin |
| WORDPRESS_PASSWORD | changeme |
| WORDPRESS_EMAIL | [email protected] |
| WORDPRESS_FIRST_NAME | WordPress |
| WORDPRESS_LAST_NAME | Administrator |
| WORDPRESS_BLOG_NAME | My Docker Blog |

## Overriding variables not defined on wp-config.php

Expand Down
40 changes: 28 additions & 12 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -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
- [email protected]
- 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
22 changes: 22 additions & 0 deletions root/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 "$@"
2 changes: 1 addition & 1 deletion root/usr/local/bin/wp
Original file line number Diff line number Diff line change
@@ -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 "$@"
5 changes: 3 additions & 2 deletions root/var/www/html/wp-config.php
Original file line number Diff line number Diff line change
Expand Up @@ -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') ?: '');

Expand All @@ -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_';
}
Expand Down