Docker上のWordpressをサブディレクトリで動かす
やること
Dockerを使ってWebサイトを公開しているが、同じドメインのサブディレクトリでWordpressで作ったブログを表示させたい。
以下のような構成になるイメージです。
http://hoge.co.jp <- メインのWebサイト http://hoge.co.jp/blog <- 追加するブログ用のサブディレクトリ
WordpressのDockerfileの作成
公式のWordpressイメージのルートを変更するやり方がわからなかったのですが、以下のブログの記事を参考にさせてもらいました!
Dockerの公式WordPressイメージを使い、下層ディレクトリにある既存のWordPressを動かす - Docker入門 | ねこしすてむ
wordpress コンテナのアクセス用IPアドレスの取得
IPアドレスは固定で設定していないので直接コンテナから取得します。(コンテナ名がwordpressの場合)
$ sudo docker-compose exec wordpress bash $ ip route show | awk '/default/ {print $3}' 172.19.0.1
nginx.conf の修正
server定義に以下を追加します。
proxy_passにはwordpressコンテナのIPを設定します。
server { (省略) location ^~ /blog { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass http://172.19.0.1:8000; } }
/blogにアクセスしてWordpressのトップページが表示されたら完了です。