😺

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. モジュールの有効化

  1. 管理画面(http://localhost:8080/admin/modules)にアクセス
  2. 以下のモジュールを有効化:
    • 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