Docker Compose - クイックスタート・ガイド:Compose と Wordpress
原文:Quickstart Guide: Compose and Wordpress
https://docs.docker.com/compose/wordpress/
このクイックスタート・ガイドは、Compose を使い、Docker コンテナによって構築された独立した環境で、Wordpress を簡単に実行します。
プロジェクトの定義
はじめに、Compose をインストールし、現在のディレクトリに Wordpress をダウンロードします:
$ curl https://wordpress.org/latest.tar.gz | tar -xvzf -
これは wordpress
という名前のディレクトリを作成します。希望があれば、プロジェクト名の名前変更もできます。
次に、ディレクトリに入り、Dockerfile
を作成します。このファイルでは、どのような環境でアプリケーションを実行しようとしているかを定義します。Dockerfile の書き方は、Docker user guide と Dockerfile reference をお読みください。この例では、Dockefile を次のようにします:
FROM orchardup/php5
ADD . /code
これは Docker に対して、イメージの構築方法を伝えます。そのイメージとは、PHP と Wordpress を含むコンテナを定義したものです。
次に、docker-compose.yml
ファイルを作成します。これはウェブ・サービスと MySQL インスタンスを分けて起動するものです。
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
動かすためには、2つのサポート・ファイルが必要です。1つは wp-config.php
という通常の WordPress の設定ファイルです。このファイルの1箇所だけ、データベースの接続先を db
コンテナに書き換えます。
<?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');
もう1つのファイルは router.php
を使って、PHP のビルトイン・ウェブ・サーバでどのように WordPress を実行するか伝えます:
<?php
$root = $_SERVER['DOCUMENT_ROOT'];
chdir($root);
$path = '/'.ltrim(parse_url($_SERVER['REQUEST_URI'])['path'],'/');
set_include_path(get_include_path().':'.__DIR__);
if(file_exists($root.$path))
{
if(is_dir($root.$path) && substr($path,strlen($path) - 1, 1) !== '/')
$path = rtrim($path,'/').'/index.php';
if(strpos($path,'.php') === false) return false;
else {
chdir(dirname($root.$path));
require_once $root.$path;
}
}else include_once 'index.php';
プロジェクトの構築
ここに4つのファイルができています。Wordpress ディレクトリの中で、docker-compose up
を実行すると、必要なイメージを取得・構築し、ウェブとデータベースのコンテナを起動します。あとは Docker デーモンのポート 8080 で Wordpress にアクセスできます( Boot2docker を使っている場合は、boot2docker ip
で IP アドレスが分かります)。