Help us understand the problem. What is going on with this article?

docker-composeで作るWordpress環境

More than 1 year has passed since last update.

はじめに


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

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

sayama0402
Javascript(Riot.js / Vue / React / Nodejs) / PHP(Wordpress, cakePHP, Laravel) / Ruby(Ruby on Rails) / Python(Django) / SQL / Linux / Swift / Docker / AWS / Serverless
http://ken-sayama.hateblo.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした