Azure Web App for Containers で WordPressサイトを立ち上げる

概要

タイトルの通りです。
具体的に利用するサービスは以下の通りです。

  • Azure Web Apps for Containers (DockerのWordPressイメージをホスト)
  • Azure Database for MySQL
  • Azure ストレージ アカウント (WordPress用永続ストレージとして使用)

リソースグループ

後でリソースクリーンアップするのに便利なのでリソースグループを作成します。名称は任意です。今回は「test-1112」としました。

Azure Database for MySQL

Azure Portal の表示に従いデータベースを作成します。
リソースグループは先ほど作成したものを設定し、CPUやストレージは費用と相談で。

リソースが作成されたら、以下の通り設定しましょう。

  • Allow access to Azure services: この後作成するWeb Appリソースがこのデータベースに接続できるようにします。
  • Enforce SSL connection: データベース接続時にSSLを強制するかどうか。今回は無効にします。

Azure Web Apps for Containers

コンテナ用のWeb Appを立ち上げます。
DockerHub の公開リポジトリから、最新のWordPressイメージを取得する設定になっています。

リソースが作成されたら、[構成]で[新しいアプリケーション設定]を選択し、先ほど作成したDBへ接続する為の環境変数を追加します。

追加する変数は以下の通りです。

WORDPRESS_DB_HOST xxxx.mysql.database.azure.com
WORDPRESS_DB_PASSWORD DBを作成した時に指定したパスワード
WORDPRESS_DB_USER DBを作成した時に指定したユーザー名

WORDPRESS_DB_HOST に設定する値は、以下のように確認できます。

公式WordPressイメージに設定できる変数に関しては、以下を参照ください。
(How to use this image のくだり)

wordpress – Docker Official Images

WordPress

Web Appのエンドポイントにブラウザでアクセスすると、WordPressのセットアップ画面が表示されます。

こちら↑のように日本語を指定してセットアップすると、たしかにサイトは日本語になる↓のですが…

Web Appを再起動してみると…

一部英語に戻ってしまいました。

どうやら日本語化の設定がDockerの揮発性ストレージに保存されていたようです。
ということで、永続ストレージにWordPressのファイルを配置するようにします。

Azure ストレージ アカウント

以下のようにストレージアカウントを作成します。

リソースが作成されたら、[コンテナー]を新しく追加します。

次に、Web Appの操作画面からストレージのマウントを設定しましょう。
今回利用するWordPressイメージは /var/www/html に設定ファイルを保存するので、その領域が永続化されるように設定しています。

WordPressの管理画面から日本語化を実施し、再度Web Appを再起動してみましょう。

再起動後も日本語化が維持されていればOKです。

最後に

今回はごく簡単なWordPress by Web App for Container を立ち上げてみました。

これだけだとメール通知機能はどうするとか、
まさか毎回WordPressの最新イメージを持ってくるわけにもいかないだろう等の諸問題もあるので、
引き続きその辺りも検証してみようと思います。