前提
数年何となく触っている筆者の個人的感想ですが
結構この数年でドラスティックに構成が変わる場面がありました。
(wp-config.php周りが顕著で
自分の場合は公式のものをダウンロードしてDockerfileやshファイルを
直接編集していたことで影響を受けました。通常の使い方でしたら影響はないのかもしれません)
あくまでも2022年3月時点での記事ということで残しておきます。
ハンズオン
まずはハンズオンで立ち上げてみます。
docker公式
こちらは難なく立ち上がりました。
※M1Macを使っている場合はdbコンテナに以下の一行(platform)を加えると動きます。
services:
db:
platform: linux/x86_64
image: mysql:5.7
WordPressコンテナを確認してみる
mysqlコマンドはあるのか?
WordPressコンテナ内にmysqlコマンドはありません。
% docker exec -it 280daxxxxx bash
root@280da4xxxxx:/var/www/html# mysql --version
bash: mysql: command not found
しかしWordPressは立ち上がり機能しています。
おそらくmysqlコンテナ、wpコンテナ共に独立してセッティングした状態で立ち上がる動きだと思います。
wpコンテナ側からmysqlコマンドを叩いてというのは基本的にはやらない設計のようです。
wp-config.phpはどのようになっているか?
このファイルがデフォルトで設置されていました。
公式WPコンテナのwp-config
mysql
データベース名はdocker-compose.ymlのMYSQL_DATABASEで指定した値で作成されます。
ここの値はデフォルトではWordPressとなっておりますが変更することも可能です。
ただし変更した際はWPコンテナ側でも名前を合わせて作成する必要があり
合っていないと以下のようなエラーがブラウザでアクセスした際に表示されます。
Error establishing a database connection
WPコンテナ側で名前を合わせるにはdocker-compose.ymlにWORDPRESS_DB_NAMEを加えて設定します。
具体的な動きとしてはwp-config.php内に設定が加えられる動きとなりどのデータベースを読みに行くのかが変わる動きとなります。
生成される乱数volumeの確認
コンテナを立ち上げた際に自動生成される乱数volumeには
wpルートディレクトリ(wp-admin、wp-content、wp-includes含む同階層以下のファイル)が
格納されていました。
確認方法は以下で試しました。
どうやらwpコンテナで生成されたファイルが格納される仕組みのようですね。
この乱数volumeには名前をつけることもできます。
docker-compose.ymlに以下のようにvolumesセクションを加えます。
volumes:
- docker-official-wp-volume:/var/www/html
私の環境では名前をつけた方がわかりやすいので名前をつけて管理しています。