Dockerを使ってSSLに対応したWordPressを好きなだけ立てる。

まず初めにこの記事は全く新しいことをしてる訳ではありません。僕が管理してるWordPressのサーバーを一つの所で簡潔に管理を出来ないかなと考えて実装した事のメモのようなものです。

必要なもの

  • Docker
  • docker-compose

今回は実装方法だけを載せたいので、インストールしてあること前提です!

サービス毎にdocker-composeを分ける

まず、こちらをご覧ください。

外からウェブサイトのURL毎に、アクセスするDockerを変更する為のリバースプロキシ、DB用のMySQL、格WorPressを全て一つずつDockerコンテナにする為に一つずつdocker-composeを作ります。

docker-composeの準備

ファイルの構造はこの様にしました。

sharedと書いてある階層のdocker-compose.ymlでは正確に言うと3つのコンテナをたてます。

  • nginx-proxy(リバースプロキシを行う)
  • letsencryptnginx-proxy-companion(SSL)
  • MySQL(DB)

続いて、WordPressは1つのコンテナです。先ほど、sharedで作成したデータベースに接続できる様にexternal_linksでmysqlを指定します。

また、WordPressを複数立てる場合サイトのデータを保存しておく階層を指定しないといけないので、docker-compose.ymlと同じ階層にwp-contentと言うフォルダを作成して、volumes/var/www/html/wp-contentとして指定してください。

共有ネットワークの作成

docker-compose.ymlの最後に書いてあるこれは、

networks:
  default:
    external:
      name: shared

sharedと言う共有ネットワークを使用する為に書いています。なので、sharedと言う共有ネットワークを作りましょう。

docker network create --driver bridge shared

最後に

最後に各階層で、

docker-compose up -d

を行う事によって、docker-compose.ymlから、コンテナが作成されて、起動します。

Leave a Reply

Your email address will not be published. Required fields are marked *