3.3 KiB
Quickstart: Compose and WordPress
You can use Compose to easily run WordPress in an isolated environment built with Docker containers.
Define the project
First, Install Compose and then download WordPress into the current directory:
$ curl https://wordpress.org/latest.tar.gz | tar -xvzf -
This will create a directory called wordpress
. If you wish, you can rename it
to the name of your project.
Next, inside that directory, create a Dockerfile
, a file that defines what
environment your app is going to run in. For more information on how to write
Dockerfiles, see the
Docker user guide and the
Dockerfile reference. In
this case, your Dockerfile should be:
FROM orchardup/php5
ADD . /code
This tells Docker how to build an image defining a container that contains PHP and WordPress.
Next you'll create a docker-compose.yml
file that will start your web service
and a separate MySQL instance:
web:
build: .
command: php -S 0.0.0.0:8000 -t /code
ports:
- "8000:8000"
links:
- db
volumes:
- .:/code
db:
image: orchardup/mysql
environment:
MYSQL_DATABASE: wordpress
A supporting file is needed to get this working. wp-config.php
is
the standard WordPress config file with a single change to point the database
configuration at the db
container:
<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', "db:3306");
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
$table_prefix = 'wp_';
define('WPLANG', '');
define('WP_DEBUG', false);
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
Build the project
With those four files in place, run docker-compose up
inside your WordPress
directory and it'll pull and build the needed images, and then start the web and
database containers. If you're using Docker Machine, then docker-machine ip MACHINE_VM
gives you the machine address and you can open http://MACHINE_VM_IP:8000
in a browser.