MariaDB#
Lagoonの mariadb-drupal Dockerイメージ Dockerfile は、LagoonのDrupalプロジェクト内で使用するためにカスタマイズされた mariadb イメージです。 mariadb イメージと異なるのは、いくつかの環境変数によって行われるデータベースの初期設定だけです:
| 環境変数 | デフォルト | 説明 |
|---|---|---|
MARIADB_DATABASE |
drupal | 起動時に作成されるDrupalデータベース |
MARIADB_USER |
drupal | 起動時に作成されるデフォルトユーザー |
MARIADB_PASSWORD |
drupal | 起動時に作成されるデフォルトユーザーのパスワード |
LAGOON_ENVIRONMENT_TYPE 変数が production に設定されている場合、パフォーマンスは MARIADB_INNODB_BUFFER_POOL_SIZE=1024 および MARIADB_INNODB_LOG_FILE_SIZE=256 に設定することで最適化されます。
MariaDB ログの追加設定#
開発の過程で、クエリログまたはスロークエリログを有効にする必要があるかもしれません。そうするためには、環境変数 MARIADB_LOG_SLOW または MARIADB_LOG_QUERIES を設定します。これはdocker-compose.ymlで行うことができます.
ホストからMySQLコンテナへの接続#
Sequel Pro、MySQL Workbench、HeidiSQL、DBeaver、標準的なmysql-cliなどの外部ツールを使って、Dockerコンテナ内のMySQLデータベースに接続したい場合、IPアドレスとポート情報を取得する方法を以下に示します。
コンテナから公開された MySQL ポートを取得する#
デフォルトでは、Dockerは各コンテナ起動時にMySQLの公開ポートをランダムに割り当てます。これはポートの衝突を防ぐために行われます。
dockerを使って公開ポートを取得するには:
docker port [container_name]を実行
または、Drupalリポジトリ内のdocker-composeを使用して:
docker-compose port [service_name] [internal_port]を実行
静的ポートの設定(非推奨)#
開発中に外部のデータベースツールを使用している場合、MySQL接続ポートを常に確認し設定するのは面倒になるかもしれません。
静的ポートを設定するには、docker-compose.ymlのサービス定義を編集します。
mariadb:
...
ports:
- "33772:3306" # ポート3306をホストポートの33772を指定して公開します。これを行うことで、ポートの衝突を管理する責任があることに注意すること。
警告
静的ポートを設定することで、ポートの衝突を管理する責任が生じます。
MySQLへの接続#
これらの詳細を使用して、お好みのデータベース管理ツールに接続できます。
| Linux | OS X | |
|---|---|---|
| IP/ホスト | コンテナからのIP | docker.amazee.io |
| ポート | コンテナから公開されたポート | コンテナから公開されたポート |
| ユーザー名 | drupal |
drupal |
| パスワード | drupal |
drupal |
| データベース | drupal |
drupal |