Skip to content

MariaDB (Database)

概要

MariaDB は、プロジェクトのデータストアです。WordPress の記事データやユーザー情報、Adminer からの操作対象となります。

構成

Dockerfile 解析 (srcs/requirements/mariadb/Dockerfile)

dockerfile
FROM debian:bullseye

RUN apt-get install -y mariadb-server ...

# サーバー設定 (バインドアドレス等)
COPY conf/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf

# 初期化スクリプト
ENTRYPOINT ["/usr/local/bin/initial_db.sh"]
CMD ["mysqld"]

設定詳細 (50-server.cnf)

デフォルトでは localhost のみリッスンする設定になっていることが多いため、Docker ネットワーク内の他コンテナからアクセスできるようにバインドアドレスを変更します。

ini
[mysqld]
bind-address = 0.0.0.0
port = 3306

データベース初期化 (initial_db.sh)

データディレクトリ (/var/lib/mysql) が空の場合(初回起動時)、以下の手順で初期化を行います。

  1. MariaDB サービスを一時的にバックグラウンドで開始。
  2. SQL コマンドを実行してデータベースとユーザーを作成。
    sql
    CREATE DATABASE IF NOT EXISTS inception_db;
    CREATE USER IF NOT EXISTS 'user'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON inception_db.* TO 'user'@'%';
    FLUSH PRIVILEGES;
  3. Root パスワードを設定。
  4. サービスを停止し、メインプロセスの mysqld に制御を渡す。

これにより、永続化ボリュームが空の状態からでも自動的に環境が復元されます。

参考資料

Released under the MIT License.