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/にアクセスすることもできるはず。
空も飛べるはず♪