TL;DR

  • Docker HubにあるMariaDBの公式イメージのメジャーバージョンアップを行う場合、環境変数MARIADB_AUTO_UPGRADEにnon-emptyな値に設定したほうがよい

経緯

Redmineで利用しているMariaDBのバージョンアップを行った。10.4.25から10.6.8に一気に上げた。

途中10.5.15を経由したのだが、その際に以下のメッセージが出たのが気になった。

redmine_db      | 2022-06-25 05:16:20+00:00 [Note] [Entrypoint]: MariaDB upgrade (mysql_upgrade) required, but skipped due to $MARIADB_AUTO_UPGRADE setting

Docker HubのMariaDB公式サイトを見に行くと確かに以下の記述がある。

Set MARIADB_AUTO_UPGRADE to a non-empty value to have the entrypoint check whether mysql_upgrade/mariadb-upgrade needs to run, and if so, run the upgrade before starting the MariaDB server.

Before the upgrade, a backup of the system database is created in the top of the datadir with the name system_mysql_backup_*.sql.zst. This backup process can be disabled with by setting MARIADB_DISABLE_UPGRADE_BACKUP to a non-empty value.

環境変数MARIADB_AUTO_UPGRADE=1と設定したうえで再実行したところ、アップグレード時の各種チェック処理が実行されたことを確認、さらに10.6.8へアップグレードした。

このオプション、なんで既定で無効になってるんだろ? 有効にした方が安全だと思うのだが…