LoginSignup
36
55

More than 5 years have passed since last update.

docker-composeで作るWordpress環境

Last updated at Posted at 2017-08-05

はじめに


Vagrantが重過ぎるので、dockerに乗り換えがてら、wordpress環境をサクッと作ってみる。

やりたいこととしては、wordpressのtheme編集が出来て、データベースは非エンジニアでも触れるようにしておけば、使い勝手もいいだろうということでphpmyadminも使えるようにしておく。

なおdocker-composeで作るので、共有も簡単に出来ます。

環境は以下

  • Mac OSX 10.12.6
  • docker 17.06.0-ce, build 02c1d87
  • wordpress (公式イメージのlatest)
  • mysql (公式イメージのlatest)
  • phpmyadmin (公式イメージのlatest)

Dockerのインストールに関しては、Docker for Macを入れておけばOK

 

1. ディレクトリ構成


ディレクトリの構成は以下のような構成で作る。
なお今回は作業ディレクトリ名をrootとします。

root/
 ┣ docker-compose.yml
 ┣ db-data/
 ┣ themes/

rootディレクトリ直下にdocker-compose.ymlファイル、db-data/フォルダ、themesフォルダがあります。
それぞれの役割は

// 作成したいコンテナの情報を記述
docker-compose.yml

// docker起動時に最初からデータを入れておきたい場合は、db-dataフォルダ内にsqlファイルを入れておけば勝手にインポートしてくれる
db-data/

// 作成・編集したいテーマフォルダを入れておく。
themes/

 

2. docker-compose.ymlを書く


docker-compose.ymlにdockerイメージの設定なんかを書いていく。
envファイルに環境変数をまとめるやり方の記事が多いが、今回はあくまでもローカルで動かすためなので、envファイルは作らないで書く。

version: "2"
services:
  # mysql settings
  mysql:
    image: mysql:latest
    environment:
      - MYSQL_ROOT_USER=root
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=hoge
      - MYSQL_USER=wp_user
      - MYSQL_PASSWORD=root
    volumes:
      - db-data:/var/lib/mysql
      - ./db-data:/docker-entrypoint-initdb.d
    ports:
      - 3306:80

  # Wordpress settings
  wordpress:
    image: wordpress:latest
    ports:
      - 80:80
    depends_on:
      - mysql
    links:
      - mysql
      - phpmyadmin
    environment:
      - WORDPRESS_DB_HOST=mysql:3306
      - WORDPRESS_DB_NAME=hoge
      - WORDPRESS_DB_USER=wp_user
      - WORDPRESS_DB_PASSWORD=root
    volumes:
      - ./themes:/var/www/html/wp-content/themes
  # phpmyadmin settings
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mysql
      - PMA_USER=root
      - PMA_PASSWORD=root
    links:
      - mysql
    ports:
      - 8080:80
    volumes:
      - /sessions
volumes:
  db-data:
    driver: local

 

3.開発方法


適当な作業ディレクトリを作成し、上記のdocker-compose.ymldb-data/themes/を配置する。

めんどくさい方はhttps://github.com/ken-sayama/docker-for-wordpress githubにサンプル置いておきます。

そのディレクトリでdocker-compose up -dをおこなえばwordpress環境が立ち上がります。
 

4.アクセス


上記でブラウザで表示確認が可能

5.補足

既存で運営してるサイトのローカル開発環境としたいのであれば、dumpしたsqlファイルをdb-dataフォルダ内に配置して、docker-compose up -d

プラグインの依存関係などもあり、wordpressのプラグインフォルダもホストで管理したい場合は、volumesの設定を以下のように書き換える。

# Wordpress settings
  wordpress:
    image: wordpress:latest
    ports:
      - 80:80
    depends_on:
      - mysql
    links:
      - mysql
      - phpmyadmin
    environment:
      - WORDPRESS_DB_HOST=mysql:3306
      - WORDPRESS_DB_NAME=hoge
      - WORDPRESS_DB_USER=wp_user
      - WORDPRESS_DB_PASSWORD=root
    volumes:
      - ./themes:/var/www/html/wp-content/themes
      # 以下を追加
      - ./plugins:/var/www/html/wp-content/plugins

以上何かあればコメントください

36
55
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
36
55