【初心者向け】DockerでWordPressローカル開発環境を作成する方法(Mac用)

当サイトのリンクには広告が含まれています。

Dockerを使ってWordPressのローカル開発環境を作った時の備忘録(環境はMac)

初めてのDockerで右も左も分からず、人の記事を参考にするも1発でうまくいかず苦戦したので、初めてでも分かりやすく簡単にできるようにまとめました。

とりあえず簡単に環境構築をすることを目的としているため、Dockerの仕組みや詳細な説明は端折っている箇所もあります。Dockerについて知識を深めたい場合は、公式ドキュメントなどとあわせて読むことをオススメします。

目次

Dokerのインストール

公式サイトにアクセスし、右側にあるダウンロードボタンをクリックします。

下記のようなログイン画面が出るので、Sign Upリンクからユーザー登録画面に行きます(既にユーザー登録済みの方は、そのままログインをしてください)

以下の3つ入力し、利用規約とプライバシーポリシーの同意にチェックして登録をします。

  • ID
  • パスワード
  • メールアドレス

3つめのチェックはメールで情報がくるオプションなので、不要ならチェックしなくてOK(私はチェックしていない)

続いて、以下の項目をを入力し登録します。

  • 名前
  • 会社
  • 経験

登録するとこんなメールが届くので、中央の青いボタンをクリックして登録を完了させます。

ログイン後の画面が開き、Dockerのインストールボタンが出現するので、ここからダウンロードし、アプリをインストールします。

あとは手順に沿ってアプリをアプリケーションに移動させ、Docker.appを起動します。

アプリを起動するとこんな感じで、画面の上部に出てくるので、先ほど登録したアカウントでログインします。

ターミナルを起動してインストールの確認のため、コンテナ情報出力コマンドを入力します。

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

上記のように、項目名が出ればOK。
これでDockerのインストールは完了です。

Docker Composeによるコンテナの作成

Docker Composeという、コマンドを叩かなくてもコンテナを作成し起動までしてくれる、超便利なやつを使用します。

docker-compose.ymlの作成

好きなところに適当なディレクトリを作成し、その中にdocker-compose.ymlという名前でファイルを作成します。今回私は、docker > wordpress-study の中に作りましたので、以下、ご自身の環境に適宜読み替えてください。

version: '3.3'
 
services:
   wordpress:
     image: wordpress:latest
     container_name: wordpress-study_wordpress
     depends_on:
       - db
     ports:
       - "8000:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
     volumes:
       - ./wordpress:/var/www/html
 
   db:
     image: mysql:5.7
     container_name: wordpress-study_mysql
     ports:
      - "4306:3306"
     volumes:
       - db_data:/var/lib/mysql
     environment:
       MYSQL_ROOT_PASSWORD: root
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
       
volumes:
    db_data:

コピペしてそのまま使えますが、必要に応じて以下をご自身の環境に合わせて変更してください。

コンテナの名前を設定

コンテナの名前を指定したい場合は、以下の「wordpress-study_wordpress」「wordpress-study_mysql」となっている部分をお好きなものに変更してください。
サイトの名前とか分かりやすいものにしておくといいかと思います。

container_name: wordpress-study_wordpress  //WordPressのコンテナ名

container_name: wordpress-study_mysql   //MySQLのコンテナ名

Dockerの中のディレクトリとMacOSの中のディレクトリを共有

volumes:
       - ./wordpress:/var/www/html

バインド・マウントを使用して、Dockerの中のディレクトリとMacOSの中のディレクトリを共有させます。これをやることで、ターミナルを使わずに、エディタからWordPressのファイルを編集できるようになります。

[Mac側のディレクトリ]:[Dockerのコンテナ側のディレクトリ]と指定します。

「wordpress」となっている部分はフォルダの名前になるので、お好きなものにしてください。
実行すると、以下のようにディレクトリができて、その中にWordPressファイル一式が格納されます。

MySQLのバージョンを指定

 db:
     image: mysql:5.7

mysql:5.7とインストールするMySQLのバージョンを指定します。

指定しないと最新版がインストールされるのですが、最新版のバージョン8でやったらWordPressがうまく動かなくて失敗したので、5.7の最新版で指定したほうがいいです。

DBのポートの設定

 ports:
      - "4306:3306"

Sequel ProでDBに接続できるように、ポートの設定をしています(Sequel Proなどで接続しないなら不要です)
ポート番号は4306にしていますが、空いているものなら何でもよいです。

DBのユーザー情報の設定

DBのユーザー名やパスワードなどは以下で指定していますので、変更したい場合は以下をお好きなものに書き換えてください。

     environment:
       MYSQL_ROOT_PASSWORD: root
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress       
       MYSQL_PASSWORD: wordpress

コンテナの起動

ターミナルから先ほど作成した、docker-compose.ymlが格納されているディレクトリに移動し、コンテナを起動させます。

$ cd docker/wordpress-study/ 
$ docker-compose up -d

コンテナが生成されていることを確認します。

$ docker-compose ps
         Name                   Command           State           Ports         
--------------------------------------------------------------------------------
wordpress-study_mysql       docker-entrypoint.sh     Up      0.0.0.0:4306->3306/tcp
                         mysqld                           , 33060/tcp           
wordpress-               docker-entrypoint.sh     Up      0.0.0.0:8000->80/tcp  
study_wordpress          apach ...

WordPressの初期設定

ブラウザから、http://localhost:8000/にアクセスすると、下記のWordPressの初期設定画面がでますので、画面にしたがって必要事項を入力し設定します。

設定すると、こちらの画面が表示されますので、これでローカル環境が構築できました!

指定したディレクトリにWordPressのファイルがあることも確認できます。

$ cd wordpress/
$ ls -l
total 368
-rw-r--r--@   1 ayaka  staff    420 12  1  2017 index.php
-rw-r--r--@   1 ayaka  staff  19935  1  2  2019 license.txt
-rw-r--r--@   1 ayaka  staff   7447  4  9  2019 readme.html
-rw-r--r--@   1 ayaka  staff   6919  1 12  2019 wp-activate.php
drwxr-xr-x@  93 ayaka  staff   2976 10 15 05:37 wp-admin
-rw-r--r--@   1 ayaka  staff    369 12  1  2017 wp-blog-header.php
-rw-r--r--@   1 ayaka  staff   2283  1 21  2019 wp-comments-post.php
-rw-r--r--@   1 ayaka  staff   2808 10 25 19:39 wp-config-sample.php
-rw-r--r--@   1 ayaka  staff   3184 10 25 19:39 wp-config.php
drwxr-xr-x@   8 ayaka  staff    256 10 25 21:59 wp-content
-rw-r--r--@   1 ayaka  staff   3847  1  9  2019 wp-cron.php
drwxr-xr-x@ 204 ayaka  staff   6528 10 15 05:37 wp-includes
-rw-r--r--@   1 ayaka  staff   2502  1 16  2019 wp-links-opml.php
-rw-r--r--@   1 ayaka  staff   3306 12  1  2017 wp-load.php
-rw-r--r--@   1 ayaka  staff  39551  6 10 22:34 wp-login.php
-rw-r--r--@   1 ayaka  staff   8403 12  1  2017 wp-mail.php
-rw-r--r--@   1 ayaka  staff  18962  3 29  2019 wp-settings.php
-rw-r--r--@   1 ayaka  staff  31085  1 17  2019 wp-signup.php
-rw-r--r--@   1 ayaka  staff   4764 12  1  2017 wp-trackback.php
-rw-r--r--@   1 ayaka  staff   3068  8 17  2018 xmlrpc.php

[おまけ]Sequel ProでMySQLに接続する

Sequel Proを起動し、接続情報を入力して接続します。

ホスト127.0.0.1
ユーザ名wordpress(YAMLファイルに記載した値)
パスワードwordpress(YAMLファイルに記載した値)
データベースwordpress(空欄でも可)
ポート4306(YAMLファイルに記載した値)

接続され、テーブルの中が見られるようになります。

コンテナの停止

コンテナを止めるときは、停止コマンド。

$ docker-compose stop

再開するときはリスタートコマンド。

$ docker-compose restart

もし、コンテナを削除する場合は削除コマンドを実行します。イメージとボリュームも合わせて削除されます。

$ docker-compose down --rmi all --volumes

※上記でコンテナを削除しても、ローカルにはファイルが残るので、不要ならこちらは手動で削除します。

以上、DockerWordPressのローカル開発環境の構築でした。

目次