前提
最近(といってももう4ヶ月くらい前から)結構ドラスティックに変化している感があり忘れるので
WordPressの公式Dockerイメージの使い方をざっくりメモしておきます。
構成
プロキシ(nginx)コンテナ → WPコンテナ → MySQLコンテナ → データ永続化コンテナ(BusyBox)
プロキシは本番と同じURLで開発したいので設定しています。
そしてローカルにwp-contentディレクトリ以下のファイル、etcディレクトリ以下サーバ設定関連ファイル
etcphpディレクトリ以下PHP設定関連ファイルをバインドマウントしています。
またdocker-entrypoint.shに独自のシェルスクリプトを追加して
wp-cliインストール、wordpressインストール、パーマリンク設定、パーミッション設定などを自動化しています。
(プラグインインストールアップデートも組み込んでいたが毎回ダウンロードするのが重いのとバグることが多かったので止めてあらかじめローカルに用意してバインドマウントする形にしました。)
この自動化をすることでdocker compose up -dしたらすでにwpサイトが立ち上がっている状態で起動できます。
ざっくりの使いかた
公式のGitリポジトリから
3つのファイルをダウンロードしてローカルのDockerディレクトリ(任意の場所)に配置します。
※私の場合ここでdocker-entrypoint.shにシェルスクリプトを追記します。
公式のDockerHub を参考に
docker-compose.ymlを作成します。
変更されたポイント
たしか4ヶ月前くらいに突如現れたwp-config-docker.phpというファイルですが以前はありませんでした。
これは何をしてくれているかというとdocker-compose.yml内でmysqlのデータベースユーザー名や
データベースパスワードなどの情報をwp-config.phpで自動的に読み込めるようにしてくれています。
なのでこのファイルはDockerfileやdocker-compose.ymlと同じ階層に置いておかなければなりません。
またdocker-compose.yml内で
WORDPRESS_DB_HOST
WORDPRESS_DB_USER
WORDPRESS_DB_PASSWORD
MYSQL_DATABASE
MYSQL_USER
MYSQL_PASSWORD
が指定できるようになったのもこの変更があったタイミングだと思います。
以前は立ち上げ時は手動かブラウザかシェルスクリプトかという感じで
WORDPRESS_DB_PASSWORD
MYSQL_PASSWORD
だけ設定していました。
所感
docker-compose.ymlで指定できるのはかなり楽で良いと思います。
日本語情報がまだこの辺は少ないのと個人的備忘録として残しておきます。