0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WordPress公式Dockerイメージセッティング個人用メモ

Posted at

前提

最近(といってももう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で指定できるのはかなり楽で良いと思います。
日本語情報がまだこの辺は少ないのと個人的備忘録として残しておきます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?