Ubuntu DockerでWordPress構築

Ubuntu上にWordPressの環境を構築しました。
Dockerを使用すると簡単にできそうなので、その方法を書き留めておきます。

Dockerのイメージ取得

まずは、Dockerのイメージを取得します。

WordPressとMariaDBのイメージを取得します。

$ sudo docker pull wordpress
$ sudo docker pull mariadb

取得したイメージは下記の通りです。

$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
wordpress    latest    b6306a6a7068   6 days ago    616MB
mariadb      latest    e2278f24ac88   6 weeks ago   410MB

コンテナーの作成

取得したDockerイメージからコンテナーを作成・起動します。

まずは、DBのコンテナーを作成・起動します。
MYSQL_ROOT_PASSWORD、MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORDには、任意の値を設定してください。

$ sudo docker run --name wpdb -e MYSQL_ROOT_PASSWORD=rootpassword -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wp -e MYSQL_PASSWORD=wppassword -d mariadb

次に、WordPressのコンテナーを作成・起動します。
WORDPRESS_DB_USER、WORDPRESS_DB_PASSWORD、WORDPRESS_DB_NAMEには、それぞれ、DBコンテナー作成時の、MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASEの値を設定します。
また、SSLに対応したいので、443ポートも開いておきます。

$ sudo docker run --name wp --link wpdb:mariadb -p 80:80 -p 443:443 -e WORDPRESS_DB_HOST=wpdb:3306 -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wppassword -e WORDPRESS_DB_NAME=wordpress -d wordpress

WordPressをSSL対応にする

サーバー証明書は、「Let’s Encrypt」のサービスを使います。
また、Certbotツールを使用し登録と更新作業の自動化を行います。

まずは、下記サイトより、python3-certbot-apache_1.10.1-1_all.debをダウンロードします。
※バージョン番号は変わると思います。

https://packages.debian.org/bullseye/python3-certbot-apache

python3-certbot-apache_1.10.1-1_all.debが、ホストマシンの/tmpディレクトリーにあり、WordPressコンテナーの/tmpディレクトリーにコピーするものとします。

$ sudo docker cp /tmp/python3-certbot-apache_1.10.1-1_all.deb wp:/tmp/

WordPressコンテナーにログインします。

# apt update
# apt upgrade -y

Certbotをインストールします。

# apt install /tmp/python3-certbot-apache_1.10.1-1_all.deb

Certbotを起動します。

# certbot --apache

自分のメールアドレスを入力します。

…(略)
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): hogehoeg@mail.com

質問が2つ出てきますが、ここは両方ともYesとしておきます。

…(略)
(Y)es/(N)o: Y
…(略)
(Y)es/(N)o: Y

WordPressを公開するドメイン名を入力します。

…(略)
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel): www.hogehoge.com

下記メッセージが表示されれば、サーバー証明書の登録完了です。

…(略)
Congratulations! You have successfully enabled https://www.hogehoge.com
…(略)

Certbotがサーバー証明書を正常に更新できるか確認します。

# certbot renew --dry-run

これでCertbotの設定は完了です。
WordPressコンテナーからログアウトします。

# exit

コンテナーの自動起動

最後に、ホストマシン起動時に、Dockerのコンテナーが自動起動するように設定します。

$ sudo docker update --restart=always wpdb
$ sudo docker update --restart=always wp

以上で、構築完了です。

構築したサイトにアクセスして、WordPressの設定画面が表示されることを確認します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です