コンテンツにスキップ

MariaDB#

MariaDBは、MySQLの後継のオープンソースです。

Lagoonの MariaDB イメージのDockerfileは、公式のAlpineイメージで提供される mariadbmariadb-client パッケージをベースにしています。

このDockerfileは、スタンドアロンのMariaDBデータベースサーバーをセットアップするために使用されます。

  • 10.4 Dockerfile (Alpine 3.12 は2022年5月までサポート) - uselagoon/mariadb-10.4
  • 10.5 Dockerfile (Alpine 3.14 は2023年5月までサポート) - uselagoon/mariadb-10.5
  • 10.6 Dockerfile (Alpine 3.16 は2024年5月までサポート) - uselagoon/mariadb-10.6
  • 10.11 Dockerfile (Alpine 3.18 は2025年5月までサポート) - uselagoon/mariadb-10.11

情報

これらのイメージは、公式のMariaDBイメージから構築されていないため、サポートサイクルが異なり、基盤となるAlpineイメージがサポートされている期間のみアップデートが提供されます。詳細はhttps://alpinelinux.org/releases/を参照してください。実際にはほとんどの場合、MariaDBコンテナをローカルでのみ実行し、本番環境ではDBaaSオペレーターが提供するManaged Cloud Databasesを利用します。

Lagoonの適応#

MariaDBコンテナのデフォルトの公開ポートはポート3306です。

LagoonがMariaDBコンテナの実行方法を最適に選択できるようにするには、lagoon.type: mariadbを使用します。これにより、DBaaSオペレーターは、クラスター内で利用可能な場合、クラウドデータベースをプロビジョニングできます。コンテナ内でMariaDBを確実に実行したい場合は、lagoon.type: mariadb-singleを使用してください。MariaDBコンテナに対しては、永続ストレージが常に/var/lib/mysqlにプロビジョニングされます。

このイメージはLagoonで使用されることを想定して準備されています。そのため、すでにいくつかのことが行われています:

  • フォルダの権限は、fix-permissionsで自動的に適応されるため、このイメージはランダムなユーザーで動作します。
  • readiness-probe.sh スクリプト、MariaDB コンテナの準備完了状態を確認します。

docker-compose.yml スニペット#

docker-compose.yml
    mariadb:
        image: uselagoon/mariadb-10.6-drupal:latest
        labels:
        # LagoonにMariaDBデータベースであることを伝える
            lagoon.type: mariadb
        ports:
            # ポート3306をランダムなローカルポートで公開し、`docker-compose port mariadb 3306`でそれを見つける
            - "3306"
        volumes:
            # MariaDB用のデフォルトパスに名前付きボリュームをマウントする
            - db:/var/lib/mysql

ツール#

  • mysqltuner.pl - データベースのパラメータ調整に便利なPerlスクリプト。
  • mysql-backup.sh - 開発環境で MySQL の日次バックアップを自動化するスクリプト。
  • pwgen - ランダムで複雑なパスワードを生成するユーティリティ。

my.cnf 設定ファイル#

このイメージには、Lagoonで動作するように最適化された デフォルト のMariaDB設定ファイルが付属しています。一部のオプションは環境変数で設定可能です。

環境変数#

環境変数名 デフォルト 説明
MARIADB_DATABASE lagoon 起動時に作成されるデータベース名
MARIADB_USER lagoon 起動時に作成されるデフォルトユーザー
MARIADB_PASSWORD lagoon 起動時に作成されるデフォルトユーザーのパスワード
MARIADB_ROOT_PASSWORD Lag00n MariaDBのルートユーザーのパスワード
MARIADB_CHARSET utf8mb4 サーバーの文字セットを設定する
MARIADB_COLLATION utf8mb4_bin サーバーの照合順序を設定する
MARIADB_MAX_ALLOWED_PACKET 64M max_allowed_packetのサイズを設定する
MARIADB_INNODB_BUFFER_POOL_SIZE 256M MariaDB InnoDBバッファプールのサイズを設定します
MARIADB_INNODB_BUFFER_POOL_INSTANCES 1 InnoDBバッファプールインスタンスの数
MARIADB_INNODB_LOG_FILE_SIZE 64M InnoDBログファイルのサイズ
MARIADB_LOG_SLOW (設定なし) 遅いクエリの保存を制御する変数
MARIADB_LOG_QUERIES (設定なし) すべてのクエリの保存を制御する変数
BACKUPS_DIR /var/lib/mysql/backup データベースのバックアップのデフォルトパス
MARIADB_DATA_DIR /var/lib/mysql MariaDBのデータディレクトリのパス。注意してください、この値を変更するとデータ損失が発生する可能性があります!
MARIADB_COPY_DATA_DIR_SOURCE (設定なし) Mariadbのエントリーポイントスクリプトが、設定されたARIADB_DATA_DIRディレクトリにデータをコピーする際に使用するパスについてセル名します。このパスを利用して、データベースをあらかじめMariaDBに投入することができます。 ただし、スクリプトはSQLファイルではなく、実際のMariaDBデータファイルの存在を前提としています。 さらに、スクリプトは、コピー先のディレクトリに既存のMySQLデータディレクトリが存在しない場合にのみ、データをコピーします。

LAGOON_ENVIRONMENT_TYPE 変数が production に設定されている場合、パフォーマンスは MARIADB_INNODB_BUFFER_POOL_SIZE=1024 および MARIADB_INNODB_LOG_FILE_SIZE=256 に設定することで最適化されます。