Things of interesting

プログラミングに関する技術ネタの備忘録

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のトップページが表示されたら完了です。