Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築

2023/03/28(Tue) 19:31:54
以前、知人から WordPress の使い方を教えて欲しいと相談があったので、さくらインターネットに WordPress をインストールしてブログを始めました。その時、知人がカスタムドメインを利用していました。お名前.com で .com ドメインの1年間の更新料金を調べてみると1287円 ~ と安いのに驚きました。1個目の登録料金は0円なので 2022/08/06(Sat) に購入してみました。そのまま塩漬けにしていたのですが、試しに iCloud+ のカスタムメールドメインに設定してみました。次回のブログに書きたいと思います。

お名前.com に500円のクーポンを貰ったので、.jp ドメインを登録してみました。お名前.com にログインして、.jp ドメインの1年間の更新料金を調べてみると 3686円でした。予想した価格と違ったので、自動更新は解除しています。

.com ドメインは所有したいので、下記のように1年間更新してみました。
.net ドメインにも興味があったので、更に登録してみました。.com ドメインを更新したおかげか、登録料は無料でした。1年間の更新料金も妥当なので保持するつもりです。

また、メールとサイトのドメインを分離して運用しようと思っています。

2023/03/28(Tue) 19:33:04
お名前.com サイトに表示されている1年間の更新料金目安

更新料金
.com
1,287円~

.net
1,507円~

.jp
1,276円~

2023/03/28(Tue) 19:33:04
実際の1年間のドメイン更新料金

kyoshiaki.com
ドメイン更新1年		1,408 円 (税込)
Whois情報公開代行		0円 (税込)
サービス維持調整費 ※	253 円 (税込)
お支払い金額		1,661 円 (税込)

kyoshiaki.net
ドメイン更新1年		1,628 円 (税込)
Whois情報公開代行		0円 (税込)
サービス維持調整費 ※	293 円 (税込)
お支払い金額		1,921 円 (税込)

kyoshiaki.jp
ドメイン更新1年		3,124 円 (税込)
Whois情報公開代行		0円 (税込)
サービス維持調整費 ※	562 円 (税込)
お支払い金額		3,686 円 (税込)

さくらインターネットに公開している WordPress やホームページを購入したカスタムドメインに変更しようと模索していました。

一度公開した WordPress サイトのドメインを変更することは、難易度が高そうですが、さくらインターネットの WordPress サイトを Docker 上に再現し、WP-CLI を使ってデータベースを書き換えてみた結果、上手くいきそうです。

大惨事になる可能性もありますが!

2023/03/28(Tue) 19:35:06
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress

2023/03/28(Tue) 19:35:45
WP-CLI | WP-CLI
https://wp-cli.org/

ドメイン変更の検証のために、上記 URL で公開している docker-compose.yml に WP-CLI を下記 URL を参考に追加してみました。

2023/03/28(Tue) 19:36:40
WP-CLIのDocker公式イメージ「wordpress:cli」の使い方 | SIOS Tech. Lab
https://tech-lab.sios.jp/archives/25369

M2 Pro Mac mini (2023) でコマンド docker-compose up -d を実行すると下記エラーが出るので、

❯ docker-compose up -d

[+] Running 0/1
 ⠙ db Pulling                                                                                                                                                                  3.1s
no matching manifest for linux/arm64/v8 in the manifest list entries

docker-compose.yml ファイルの image: mysql:5.7 を image: mysql:latest に変更しました。

===== docker-compose.yml =====

version: '3.3'

services:
  db:
    image: mysql:5.7

↓

version: '3.3'

services:                                                             
  db:                                                                 
    image: mysql:latest    

通常、WP-CLI をインストールし、WordPress のデーターベースを wp コマンドを使って変更することになります。

さくらインターネットでの場合、WP-CLI コマンド wp はあらかじめインストールされています。

さくらインターネットに ssh ログインし、WordPress のディレクトリに移動した後、下記のように wp コマンドを実行するだけです。

下記例、wp db search kyoshiaki.sakura.ne.jp コマンドは、データーベースに、文字列 kyoshiaki.sakura.ne.jpが含まれるレコードを表示しています。

=== ssh ===

% cd wp

% pwd
/xxxx/xxxx/wp

% ls
index.php               wp-cron.php
license.txt             wp-includes
readme.html             wp-links-opml.php
wp-activate.php         wp-load.php
wp-admin                wp-login.php
wp-blog-header.php      wp-mail.php
wp-cli.local.yml        wp-settings.php
wp-comments-post.php    wp-signup.php
wp-config-sample.php    wp-trackback.php
wp-config.php           xmlrpc.php
wp-content

% wp db search kyoshiaki.sakura.ne.jp

wpxxxxxacomments:comment_author_url
8:http://kyoshiaki.sakura.ne.jp/osx/index.html
wpxxxxxaoptions:option_value
1:https://kyoshiaki.sakura.ne.jp/wp
wpxxxxxaoptions:option_value
2:https://kyoshiaki.sakura.ne.jp/wp
wpxxxxxaoptions:option_value
408:}}s:16:"background_image";s:84:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/uploads/2020/12/advent-57
wpxxxxxaoptions:option_value
410:;s:17:"top_slide_image_1";s:91:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/themes/lightning/assets/i [...] ;s:17:"top_slide_image_2";s:91:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/themes/lightning/assets/i [...] g";s:15:"top_slide_url_2";s:33:"https://kyoshiaki.sakura.ne.jp/wp";s:22:"top_slide_text_title_2";s:18:
wpxxxxxaoptions:option_value

︙

wpxxxxxaposts:guid
1322:https://kyoshiaki.sakura.ne.jp/wp/?p=1322
wpxxxxxaposts:guid
1323:https://kyoshiaki.sakura.ne.jp/wp/?p=1323
wpxxxxxaposts:guid
1324:https://kyoshiaki.sakura.ne.jp/jwp/?p=1324
2023/03/28(Tue) 19:39:17
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress

上記に公開した docker-compose.yml の場合、

2023/03/28(Tue) 19:40:40
wordpress - Official Image | Docker Hub
https://hub.docker.com/_/wordpress

2023/03/28(Tue) 19:41:14
wordpress/Dockerfile at 809519cc86bee0d6c7f2743976a850267983e2c2 · docker-library/wordpress
https://github.com/docker-library/wordpress/blob/809519cc86bee0d6c7f2743976a850267983e2c2/cli/php8.2/alpine/Dockerfile

ENTRYPOINT ["docker-entrypoint.sh"]
USER www-data
CMD ["wp", "shell"]

WP-CLI コンテナは、実行されると上記 Dockerfile の CMD [“wp”, “shell”] より、wp コマンドをシェルモードで起動します。

CMD 命令の詳細は、下記ページを参考にしてください。

2023/03/28(Tue) 19:42:07
Dockerfile reference
https://docs.docker.com/engine/reference/builder/

CMD

The CMD instruction has three forms:

・CMD [“executable”,”param1″,”param2″] (exec form, this is the preferred form)
・CMD [“param1″,”param2”] (as default parameters to ENTRYPOINT)
・CMD command param1 param2 (shell form)
There can only be one CMD instruction in a Dockerfile. If you list more than one CMD then only the last CMD will take effect.

The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.

If CMD is used to provide default arguments for the ENTRYPOINT instruction, both the CMD and ENTRYPOINT instructions should be specified with the JSON array format.

CMD
=== docker-compose.yml ===

version: '3.3' 

services:
  db:
    image: mysql:latest
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"

︙

 cli:
    image: wordpress:cli
    container_name: cli
    volumes_from: 
      - wordpress
    depends_on:
      - db
      - wordpress
    command: "--info"
    user: xfs
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_TABLE_PREFIX: wp_

volumes:
  db_data: {}

デフォルトだと上記 docker-compose.yml の cli コンテナの command: “–info” より、シェルモードで立ち上がっている wp に引数 –info が渡されます。

データベースを書き換えるには、docker-compose コマンドで cli コンテナを削除して、wp コマンドの引数を渡し、cli コンテナを再作成して起動させます。

❯ docker-compose run --rm cli search-replace 'Hello world' 'Welcome WordPress' 

上記 docker-compose コマンドを実行すると下記結果より、データベースのテーブル wp_posts、カラム post_title の ‘Hello world’ の文字列が1箇所 ‘Welcome WordPress’ に変更されています。

❯ docker-compose run --rm cli search-replace 'Hello world' 'Welcome WordPress' 

[+] Running 2/0
 ⠿ Container docker-compose-wordpress-db-1         Running                                                                                                                     0.0s
 ⠿ Container docker-compose-wordpress-wordpress-1  Running                                                                                                                     0.0s
+------------------+-----------------------+--------------+------+
| Table            | Column                | Replacements | Type |
+------------------+-----------------------+--------------+------+
| wp_commentmeta   | meta_key              | 0            | SQL  |
| wp_commentmeta   | meta_value            | 0            | SQL  |
| wp_comments      | comment_author        | 0            | SQL  |
︙
| wp_posts         | post_title            | 1            | SQL  |
︙
| wp_users         | display_name          | 0            | SQL  |
+------------------+-----------------------+--------------+------+
Success: Made 1 replacement.

WP-CLI コマンドの詳細については、下記ページの ‘お手軽 Docker コマンド起動 Ruby スクリプト docker.rb の WP-CLI コマンド’ を参照してください。

2023/03/28(Tue) 19:46:11
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress#readme

2023/03/28(Tue) 19:46:34
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress#%E3%81%8A%E6%89%8B%E8%BB%BD-docker-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E8%B5%B7%E5%8B%95-ruby-%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88-dockerrb-%E3%81%AE-wp-cli-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89
2023/03/28(Tue) 19:47:01
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress

上記の docker-compose.yml とお手軽 Docker コマンド起動 Ruby スクリプト docker.rb を利用すれば、気軽にデータベースを変更できます。
失敗しても、docker-compose down を実行した後、忘れずに Volume を docker.rb の 6番、docker volume rm docker-compose-wordpress_db_data を使用して削除すれば、docker-compose up -d で何度でも WordPress のインストールから、やり直せます。

Nintendo Switch Pro コントローラーを Mac mini (2023) で試す

2023/03/08(Wed) 19:42:51
Mac mini (2023) を購入したので、試してみたかった BIOHAZARD VILLAGE を遊んでみました。 最初はキーボードとマウスで操作しましたが、思うように移動できなくて諦めました。

2023/03/07(Tue) 19:33:36
ワイヤレスゲームコントローラを Apple 製のデバイスに接続する - Apple サポート (日本) https://support.apple.com/ja-jp/HT210414

ワイヤレスゲームコントローラを Apple 製のデバイスに接続する

Xbox や PlayStation のコントローラ、その他の Bluetooth 対応のゲームコントローラを iPhone、iPad、Apple TV、Mac に接続する方法をご案内します。

コントローラをペアリングして接続する

PlayStation のゲームコントローラについてはこちらの記事、Xbox のゲームコントローラについてはこちらの記事で手順を説明していますが、コンピュータや携帯電話とペアリング可能な Bluetooth 対応のゲームコントローラなら、大体の手順は変わりません。

1)コントローラ上の該当するボタンを 1 つまたは複数組み合わせて長押しし、コントローラをペアリングモードにします。これで、Apple 製デバイスから検出できるようになります。コントローラの説明書で、コンピュータや携帯電話とペアリングする場合の詳しい設定手順を確認してください。

2) Apple 製のデバイスで Bluetooth の設定画面を開いて、近くにあるデバイスのリストからコントローラを選択します。
iPhone、iPad:Bluetooth デバイスを接続する
Apple TV:Bluetooth デバイスを接続する
Mac:Bluetooth デバイスを接続する

ワイヤレスゲームコントローラを Apple 製のデバイスに接続する – Apple サポート (日本)

上記ページによると、Xbox や PlayStation のコントローラは対応していますが、私は所有していません。しかし、Bluetooth でペアリングできるゲームコントローラなら手順は同じだと記載されています。

2023/03/07(Tue) 19:33:50
周辺機器 | Nintendo Switch|任天堂 https://www.nintendo.co.jp/hardware/switch/accessories/index.html 2023/03/07(Tue) 19:33:59
Nintendo Switch Proコントローラーの主な仕様 ( Nintendo Switch Proコントローラーの画像付き名称) https://www.nintendo.co.jp/hardware/switch/accessories/procon.html?width=960 2023/03/07(Tue) 19:34:09
Nintendo Switch Proコントローラー|Nintendo Switch サポート情報|Nintendo https://www.nintendo.co.jp/support/switch/controller/nintendoswitchpro.html 2023/03/07(Tue) 19:34:38
【Switch】コントローラーのランプはどういったときに光りますか? https://support.nintendo.co.jp/app/answers/detail/a_id/33822 2023/03/07(Tue) 19:34:48
【Switch】コントローラーのシンクロボタンは、どこにありますか? https://support.nintendo.co.jp/app/answers/detail/a_id/34181

Mac mini (2023) に Nintendo Switch Pro コントローラーを Bluetooth 接続してみました。

Nintendo Switch Proコントローラーのシンクロボタンを長押しすると、コントローラーのランプが流れるように点滅し、Bluetooth のペアリングモードになります。 上記 URL を参照してください。

2023/03/07(Tue) 19:35:10
BluetoothデバイスをMacに接続する - Apple サポート (日本) https://support.apple.com/ja-jp/guide/mac-help/blth1004/mac
Pro Controller

Mac mini (2023) の アップルメニュー > システム設定… > Bluetooth > 近くのデバイス に上図のように Pro Controller という名前が表示されるので、接続します。

Info

Pro Controller 横の Info ボタンをクリックするとダイアログが開くので、

ゲームコントローラ設定…

‘ゲームコントローラ設定… ’ ボタンをクリックします。

+ボタン

プロファイルの下にある+ボタンをクリックすると、下図のようにボタンをカスタマイズできます。

新規プロファイル
このデバイスのペアリングを解除…

Nintendo Switch Proコントローラーを Mac に再接続できない場合は、 Info ボタンをクリックし、上図のように ‘このデバイスのペアリングを解除…’ ボタンをクリックしてください。登録情報が削除されるので、再度、Nintendo Switch Proコントローラーのシンクロボタンを長押ししてペアリングモードにし、近くのデバイス の中から Pro Controller を選んで接続してください。

コントローラ

1度でも、ゲームコントローラを接続すると Mac mini (2023) のアップルメニュー  > システム環境設定… > サイドバー の下に ‘ゲームコントローラ’ が上図のように現れるので、クリックしてください。
同じく上図に、ゲームコントローラの状態が表示されます。

2023/03/07(Tue) 19:15:29
Nintendo Switch Proコントローラー|Nintendo Switch サポート情報|Nintendo
https://www.nintendo.co.jp/support/switch/controller/nintendoswitchpro.html

2023/03/07(Tue) 19:15:53
【Switch】はじめて使用するコントローラーの登録方法は?
https://support.nintendo.co.jp/app/answers/detail/a_id/34182

2023/03/07(Tue) 19:16:13
【Switch】はじめて使用するコントローラーを、Switch本体に取り付けて登録したい。
https://support.nintendo.co.jp/app/answers/detail/a_id/34129/session/L2F2LzEvdGltZS8xNjc3OTY5MjI0L3NpZC9mVVFsaklWbWhsRkV6dmFDY3JWOWVkVyU3RUlmYlNHTG5zQjRuMFNZZ3d1dmpMd29qR0F1WnFtd3VGU3NleDk2SWdTWGxtRnp1WTNlOE1aaDBuWURudlV6cE1Od1JCck1JckIxNkF6U3NIRm1raEhGc3pDY3BqRFJNZyUyMSUyMQ%3D%3D

2023/03/07(Tue) 19:16:48
【Switch】はじめて使用するコントローラーを、無線でSwitch本体に登録したい。
https://support.nintendo.co.jp/app/answers/detail/a_id/36558/session/L2F2LzEvdGltZS8xNjc3OTY5MjI0L3NpZC9mVVFsaklWbWhsRkV6dmFDY3JWOWVkVyU3RUlmYlNHTG5zQjRuMFNZZ3d1dmpMd29qR0F1WnFtd3VGU3NleDk2SWdTWGxtRnp1WTNlOE1aaDBuWURudlV6cE1Od1JCck1JckIxNkF6U3NIRm1raEhGc3pDY3BqRFJNZyUyMSUyMQ%3D%3D

2023/03/07(Tue) 19:17:17
【Switch】別途購入したJoy-ConやProコントローラーを、Nintendo Switch Lite本体に登録したい。
https://support.nintendo.co.jp/app/answers/detail/a_id/36583/session/L2F2LzEvdGltZS8xNjc3OTY5MjI0L3NpZC9mVVFsaklWbWhsRkV6dmFDY3JWOWVkVyU3RUlmYlNHTG5zQjRuMFNZZ3d1dmpMd29qR0F1WnFtd3VGU3NleDk2SWdTWGxtRnp1WTNlOE1aaDBuWURudlV6cE1Od1JCck1JckIxNkF6U3NIRm1raEhGc3pDY3BqRFJNZyUyMSUyMQ%3D%3D

Nintendo Switch Pro コントローラーを Nintendo Switch に接続し直すには、上記ページを参考にしてください。

BIOHAZARD VILLAGE を Nintendo Switch Proコントローラーでプレーする

スタート画面
プレー画面

BIOHAZARD VILLAGE は、 Nintendo Switch Pro コントローラーで問題なくプレーすることができます。プロファイルも作成する必要がありません。

CONTROLLER SETTING

移動はLスティックでできます。Xboxのゲームコントローラとは、AボタンとBボタンの位置が逆ですが、BIOHAZARD VILLAGEでは、図解で表示されるので問題ありません。

ゲームは時間を消費するので、クリアできそうにありませんが、グラフィックを堪能したいと思います。