KUSANAGI Run on Docker 2022年の変更まとめ

宮﨑悟

KUSANAGI Runs on Docker(以下RoD)が、2022年に加えた新機能を紹介。nginx 1.22と1.23に対応、MariaDB 10.7、10.8、10.9にも対応したことを明らかに。また、Concrete CMSやDrupalのアップデートによる不具合の対策も行った。さらに、バックアップ/リストアが可能となり、複数アーキテクチャに対応している。しかし、まだarm64/v8の動作確認を進行中。開発予定として、PHP 8.2対応、podman対応、Movable Type対応を挙げている。新機能の提案や報告についてはGithubで募集中。

新年明けてだいぶ立ちましたが、あけましておめでとうございます。今年もKUSANAGIをよろしくお願いします。

さて、しばらく KUSANAGI Run on Docker(以下RoD)の情報をお届けしていませんでした。そこで、2022年のRoDに追加した機能について、まとめて紹介いたします。

nginx

nginx 1.20と1.21 のサポート終了にともない、--nginx120--nginx121 オプションを削除しました。その代わり、nginx 1.22と1.23 を使用するための、 --nginx122--nginx123 オプションを追加しました。デフォルトで使用されるバージョンは、 nginx 1.23となります。

MariaDB

MariaDB 10.3 および 10.4 のサポート終了にともない、-mariadb10.3--mariadb10.4 オプションを削除しました。新たに、MariaDB 10.7、10.8、10.9 のリリースにともない、-mariadb10.7--mariadb10.8--mariadb10.9 オプションを追加しました。ただし、これらバージョンは、サポート期間が2023年までと短いので注意してください。

各バージョンの詳細なサポート期間はこちらを参照ください。

Concrete CMS対応

Concrete CMS のバージョンアップによる構築時の不具合に対応しました。Concrete CMSは、PHP 8.0、8.1に対応しています。

Drupal 対応

Drupalもバージョンが上がり、つい先日Drupal10がリリースされました。RoDでは、provisionサブコマンドに以下のオプションを指定することで、Drupalを構築できます。

  • --drupal
  • --drupal7
  • --drupal8
  • --drupal10

--drupalを指定すると、drupal9 が構築されます。

Drupal7/8 は、Drupalのこのバージョンと対応しているPHP 7.4がサポート終了しているため、新規インストールは推奨しません。drupal9/10は、PHP 8.0 以上で使用してください。

バックアップ/リストアの不具合修正

kusanagi-docker config backupkusanagi-docker config restore コマンドに不具合があり、DBデータやcontentsディレクトリの内容のバックアップとリストアが行えませんでした。現在ではその問題を修正し、問題なくバックアップ/リストアが可能になっています。

バックアップとリストアを使用した、他環境への移行が容易になるので、Gitなどとうまく組み合わせて運用してください。

マルチアーキテクチャ対応

現在 RoDで作成しているイメージは、以下のアーキテクチャに対応しています。

  • linux/386
  • linux/amd64
  • linux/arm/v6
  • linux/arm/v7
  • linux/arm64
  • linux/ppc64le
  • linux/s390x

動作確認は、x86_64アーキテクチャのみ行っています。arm64アーキテクチャ用のイメージを作成していますが、Mac M1やAWSのarm64インスタンスでは動作していません。これは、Docker Desktop for Mac や linuxのarm64版が arm64/v8 アーキテクチャで動作しているためです。現在、arm64/v8 のでの動作確認を進めています。

なお、Docker Desktop for Macは、x86_64版のコンテナイメージが動作するため、Mac OS X 上でRoDは問題なく動作します。

2023年の展望

今年の開発項目として、以下のことを考えています。

PHP 8.2対応

先日、PHP 8.2がリリースされました。それにともない、php8.2.1 のコンテナイメージを作成しています。しかし、WordPress単体での動作確認はできていますが、プラグインやテーマはPHP 82に対応していないものもまだ多く含まれます。また、Concrete CMS や Drupal もPHP 8.2に対応したというリリースがされていません。そのため、--php82 オプションを用意していません。

今後、PHP 8.2 イメージの更新と合わせて、オプションは追加する予定です。

podman 対応

podmanは、RHEL8移行のRHELベースのディストリビューションで標準のコンテナ実装です。podman はdocker互換コマンドが用意されていますが、docker-compose は現行のままでは使用できない状態です。

podman には、PodやSecretというKubernetesと同様の機能を使用できるため、これらを使用した実装を考えています。

Movable Type 対応

ご存知の通り、KUSANAGI9 では MovableType に対応しました。RoDでも、MovabeType 構築できるよう検討中です。

おわりに

2022年も、ミドルウェアのバージョンアップを中心に、各種CMSの対応や不具合の対応などを行ってきました。

RoDは、Github上で公開されているオープンソースのソフトウェアです。こちらでも新しい機能を検討中ですが、機能追加の提案や、不具合の報告などは、issueにて受け付けております。何かあれば、issue にしてもらえるとありがたいです。

今年も、KUSANAGI Runs on Docker をよろしくお願いします。

<< KUSANAGI RoDの使い方(10)~高速Dockerの話(最終回)~KUSANAGI Runs on Docker でDev/Rel環境を分離する >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解