DockerでWordPressの開発環境を作ったときのメモ

10年以上、WordPress関連の開発はMAMPを使っていたのですが、
今更ながら、Dockerを使ってみようと思い立ったので、
環境を作り直すことにしました。

とりあえずup

私は『図解!Dockerのツボとコツがゼッタイにわかる本』という本でDockerの勉強をしました。
この本のChapter07-5を参考に、Docker Hubからupします。

とりあえず、docker-compose.yml

version: '3.1'

services:

 wordpress:
  image: wordpress
  restart: always
  ports:
   - 8080:80
  environment:
   WORDPRESS_DB_HOST: db
   WORDPRESS_DB_USER: exampleuser
   WORDPRESS_DB_PASSWORD: examplepass
   WORDPRESS_DB_NAME: exampledb
  volumes:
   - wordpress:/var/www/html
 
 db:
  image: mysql:5.7
  restart: always
  environment:
   MYSQL_DATABASE: exampledb
   MYSQL_USER: exampleuser
   MYSQL_PASSWORD: examplepass
   MYSQL_RANDOM_ROOT_PASSWORD: '1'
  volumes:
   - db:/var/lib/mysql

volumes:
 wordpress:
 db:

これをターミナルで

cd docker-compose.ymlのあるディレクトリ
docker compose up -d

すれば、とりあえず、WordPress環境はできます。
しかし、このままでは、コンテナが破棄されるたびに、
せっかく作った(あるいは、作りかけ)のテーマやプラグインが消えてしまいます。

WordPressファイルの永続化

下の記事を参考に改修します。

とりあえず

docker compose down

してから、上のdocker-compose.ymlの

volumes:
   - wordpress:/var/www/html

の部分を

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

に書き換えて、再度

docker compose up -d

これでdocker-compose.ymlと同じ階層にwwwフォルダが作られます。
おなじみのwp-contentディレクトリもこの中にあります。
ここなら、dockerを停止してもファイルが破棄されないので、MAMPのときと変わらない感覚で作業をすることができちゃいます。

localhost:8080にアクセスできない

WordPressの環境ができたら、http://localhost:8080にアクセスするわけですが、
このとき、自動的にinstall.phpが開き、言語選択画面が出る場合と

このサイトにアクセスできませんlocalhost で接続が拒否されました。
次をお試しください

接続を確認する
プロキシとファイアウォールを確認する
ERR_CONNECTION_REFUSED

と出る場合があります。

原因はよくわかりません。

何か失敗したのだろうか??? と思ってしまいますが、
http://localhost:8080/wp-admin/
にアクセスしてみて、言語選択画面が出てくれば、大丈夫!
日本語を選択して、先に進みましょう。

(私は、ここにひっかかってしまい…
downさせたり、upしたり、ymlを見直したり…
あーでもない、こーでもないと
無駄に数時間を費やしてしまいました。くやしい…)

いつもどおりのWordPressのインストールを終え、
ログインして、ダッシュボードにまでたどり着ければ…
あとは、普通にhttp://localhost:8080/にアクセスすることもできるはず。
空も飛べるはず♪

タイトルとURLをコピーしました