3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker Compose - クイックスタート・ガイド:Compose と Wordpress

Posted at

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 guideDockerfile 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 アドレスが分かります)。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?