😺
Docker環境でDrupal 10にWDBモジュールをセットアップする手順
概要
この記事では、Docker環境でDrupal 10を構築し、言語学データベース用のWDBモジュールをインストールする手順を解説します。
前提条件
- Docker Desktop がインストールされていること
- Git がインストールされていること
手順
1. Docker環境の構築
まず、docker-compose.ymlファイルを作成します:
services:
mariadb:
image: mariadb:latest
restart: always
volumes:
- mariadb:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: drupal
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
drupal:
image: drupal:10.2.7-php8.2-apache-bullseye
volumes:
- ./drupal/files:/opt/drupal/web/sites/default/files
- ./drupal/modules:/opt/drupal/web/modules
- ./drupal/themes:/opt/drupal/web/themes
- ./drupal/private:/opt/drupal/private
depends_on:
- mariadb
ports:
- 8080:80
restart: always
volumes:
mariadb: {}
次に、必要なディレクトリを作成し、コンテナを起動します:
mkdir -p drupal/files drupal/modules/custom drupal/themes drupal/private
docker compose up -d
2. Drupalの初期設定
ブラウザで http://localhost:8080 にアクセスし、インストールウィザードを進めます。
データベース接続設定:
- データベースタイプ: MySQL/MariaDB
- データベース名: drupal
- データベースユーザー名: drupal
- データベースパスワード: drupal
- ホスト: mariadb
- ポート: 3306(デフォルト)
3. WDBモジュールの依存関係をインストール
WDBモジュールには以下の依存関係があります:
- jQuery UI
- jQuery UI Dialog
- Views(Drupalコアモジュール)
Composerを使用してjQuery UIモジュールをインストール:
docker exec docker-drupal-drupal-1 composer require 'drupal/jquery_ui:^1.6' 'drupal/jquery_ui_dialog:^2.0'
4. WDBモジュールのダウンロード
GitHubからWDBモジュールをクローン:
cd drupal/modules/custom
git clone https://github.com/wakitosh/wdb_module.git
5. プライベートファイルシステムの設定
WDBモジュールは言語学データのインポート機能でプライベートファイルシステムを使用します。
settings.phpに設定を追加:
docker exec docker-drupal-drupal-1 bash -c "echo \"\\\$settings['file_private_path'] = '../private';\" >> /opt/drupal/web/sites/default/settings.php"
ディレクトリの権限を設定:
docker exec docker-drupal-drupal-1 bash -c "chmod 755 /opt/drupal/private && chown www-data:www-data /opt/drupal/private"
6. モジュールの有効化
- 管理画面(http://localhost:8080/admin/modules)にアクセス
- 以下のモジュールを有効化:
- jQuery UI
- Views(コアモジュール内)
- WDB Core Functionality
ディレクトリ構造
最終的なディレクトリ構造:
docker-drupal/
├── docker-compose.yml
└── drupal/
├── files/
├── modules/
│ └── custom/
│ └── wdb_module/
├── themes/
└── private/
トラブルシューティング
ポート競合エラー
既存のコンテナがポート8080を使用している場合:
docker ps -a | grep 8080
docker stop [コンテナ名]
docker rm [コンテナ名]
プライベートファイルシステムが認識されない
管理画面で設定を確認:Configuration > Media > File system(/admin/config/media/file-system)
まとめ
この手順により、Docker環境でDrupal 10とWDBモジュールをセットアップできます。WDBモジュールは言語学研究用のデータベース機能を提供し、テキストのアノテーション、語彙管理、IIIF対応の画像ビューアーなどの機能を含んでいます。
Discussion