Skip to content

005. ベースイメージの刷新 (Debian 13 & Alpine 3.23)

コンテキスト

プロジェクト開始当初、Dockerベースイメージとして debian:bullseye (Debian 11) と alpine:3.20 が使用されていました。 しかし、2026年2月時点でこれらのバージョンは古くなっており、最新のセキュリティパッチやパッケージ(特にPHP)の恩恵を受けるために、最新の安定版へアップデートする必要がありました。

意思決定

すべてのDockerベースイメージを、以下の最新安定版(2026年2月時点)に更新することを決定しました。

サービス旧バージョン新バージョン備考
Core Services (MariaDB, Nginx, WordPress)Debian 11 (Bullseye)Debian 13 (Trixie)PHPバージョンが 7.4 から 8.4 へ大幅アップグレード
Bonus Services (Redis, FTP, Adminer)Debian 11 (Bullseye)Debian 13 (Trixie)-
WebsiteAlpine 3.20Alpine 3.23-

実装詳細と変更点

1. PHPバージョンの更新 (7.4 -> 8.4)

Debian 13 (Trixie) の標準リポジトリでは PHP 8.4 が採用されています。 これに伴い、wordpress/Dockerfile および設定ファイルを以下のように変更しました。

  • パッケージ名の汎用化: php7.4-fpm などのバージョン指定を php-fpm 等に変更し、OS標準のバージョン(8.4)がインストールされるようにしました。
  • 設定ファイルパスの変更: PHP-FPMの設定ファイルパスを /etc/php/7.4/... から /etc/php/8.4/... に更新しました。

2. MariaDB初期化プロセスの修正

Debian 13 (MariaDB 11.x系) において、従来の mysql_install_db コマンドや service コマンドの挙動に変更がありました。 initial_db.sh スクリプトを以下の通り修正しました。

  • 初期化コマンド: mysql_install_db (非推奨) から mariadb-install-db へ変更。
  • 一時起動: service mariadb start ではなく、mariadbd --skip-networking & を使用してバックグラウンドでプロセスを直接起動し、初期設定(ユーザー作成等)を行う方式に変更しました。

結果

  • セキュリティ向上: 最新のOSとパッケージを使用することで、既知の脆弱性への対策が強化されました。
  • パフォーマンス向上: PHP 8.4 へのアップグレードにより、WordPressの実行速度向上が期待できます。
  • 互換性: 検証の結果、WordPress、Adminer、およびその他のサービスは問題なく動作することを確認しました。

参照

Released under the MIT License.