一体何番煎じの記事になるのか分からないが、Docker Compose を使用したwordpress のテーマ開発環境をつくってみた。
この記事を読む対象の人
- Docker を使って間もない人
- WordPress のテーマ開発をDockerを使ってやりたい人
- Linux 環境でDocker Compose を使おうとしている人
環境
- Lubuntu 16.04 にDocker が既にインストールされている環境
Docker のインストール方法についてはこちら↓
https://qiita.com/shimisunet/items/b20d1cb45074486c026d
Docker Compose とは
複数のDocker コンテナからなるサービスを構築・実行する手順をひとまとめに定義して自動化するという機能である。Docker Compose を使うことで、Docker を使用した環境構築が容易になる。
引用先↓
https://tech.recruit-mp.co.jp/infrastructure/post-11266/
新規でWordPress, MySQL の環境を構築する
既にDocker がインストールされていることを前提に書く。
ターミナルを起動させて、初めに、docker-compose をインストールする。
sudo apt-get install docker-compose
任意の場所にディレクトリを作成する。
mkdir wordpress(任意のディレクトリ名)
docker-compose.yml の作成
作成したディレクトリ内に移動し、docker-compose.yml のファイルを作成する。任意のエディタで下記を追加。
version: '2'
services:
db:
image: mysql:latest
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_DATABASE: wordpress(任意のDB名)
MYSQL_USER: wp_user(任意のユーザ名)
MYSQL_PASSWORD: password(任意のパスワード)
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wp_user(上記で書いたDBのユーザ名)
WORDPRESS_DB_PASSWORD: password(上記で書いたDBのパスワード)
volumes:
db_data:
上の記述で設定していることは以下のとおり。
- MySQL、WordPress のバージョンのイメージ設定(
latest
で最新のバージョンをを取得するようにしている)。 - WordPress で使用するデータベース名、ユーザ名、パスワードの設定。
- WordPress で作成したサイトをブラウザで閲覧する際のポート番号(今回は8080を割り当てている)。
- WordPress で使用するデータベース名やパスワード。
WordPress のテーマを開発するディレクトリをDocker のコンテナとマウントさせる
WordPress のテーマの開発をDocker のコンテナ内でコーディングするのは現実的に難しい。そこで、コーディングをしやすく、且つ管理しやすくするため、テーマ開発用のディレクトリをローカル環境に用意する。この用意したテーマ開発用のディレクトリを、ここではVolumeと呼ぶ。ローカル環境に用意したVolume をDocker のコンテナとマウントさせる。
Volume をDocker のコンテナをマウントさせるための設定は、WordPress の設定部分の記述に、volumes:
以降を追加する。(2018年10月21日更新)
(上記省略)
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
volumes:
- ./themes/hoge:/var/www/html/wp-content/themes/hoge
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wp_user(上記で書いたDBのユーザ名)
WORDPRESS_DB_PASSWORD: password(上記で書いたDBのパスワード)
この設定で、ローカル環境の/themes/hoge
というテーマ開発用ディレクトリをDocker のコンテナ内の/var/www/html/wp-content/themes/hoge
にマウントさせている。
実際のテーマ開発は、ローカル環境の(任意のディレクトリ)/themes/hoge
内で行う。
予め、ローカル環境に/themes/hoge
は作成しておくこと。(2018年4月29日追記)
その後、下記のコマンドでDocker を立ち上げる。
オプション-d
をつけることで、コンテナをバックグラウンドで動かすことができる。
docker-compose up -d
ブラウザで、http://localhost:8080 を開く。
下記のようなWordPress のインストール画面が表示されたら成功。
補足
docker-compose.yml でmysql のimage を指定する部分で、image:latest
にすると、現在、MySQLの5.7を取得してきます。
しかし、MySQL5.7 を使用するとコケてしまい、DB やWordPress に接続できないことがことがわかりました。
この記事を読んでDocker Compose でWordPress のテーマを開発したい方は、MySQL のイメージを取得する際、バージョンを5.6 に指定して環境を構築してください。(2018年7月31日追記)
version: '2'
services:
db:
image: mysql:5.6
参考URL
ありがとうございました。
https://qiita.com/muk-ai/items/3350122d9e09473723c6