Elasticsearch
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

演習:Dockerを使用してLiferay とElasticsearchを実行する

7.3+

ここでは、ローカル マシン上での最小限の Liferay-Elasticsearch セットアップを順に確認し、Elasticsearch と Liferay 間の安全な REST クライアント 接続がどのように構成されているかを確認します。 この例では、Elasticsearch コンテナ 1 つと Liferay コンテナ 1 つの 2 つの Docker コンテナを使用します。 より概念的かつ実稼働に近い情報については、 Elasticsearch のインストールを参照してください。

Dockerコンテナにバインドマウントするためのローカルフォルダを作成する

プラグインと構成ファイルを提供するために、Elasticsearch および Liferay コンテナのシステム フォルダーにバインド マウントできるローカル フォルダーを作成します。 Elasticsearchはマウントされたフォルダに書き込む必要があるため、以下のmkdirコマンドには-m a+w修飾子をつけています。 システムに適用される適切な権限を理解して適用する必要があります。

mkdir -p test-es-install/dxp/files/osgi/configs && mkdir -p test-es-install/elasticsearch -m a+w && cd test-es-install
ヒント

最後に cd test-es-install コマンドを実行すると、 test-es-install フォルダーに移動します。 Elasticsearch と Liferay の両方の残りのコマンドを必ずこのフォルダーから実行してください。

Elasticsearch をインストール

  1. elasticsearchという名前の Elasticsearch コンテナを設定して起動します。

    docker run -it --name elasticsearch -m 1g -p 9200:9200 -e "discovery.type=single-node" -e "node.name=es-node1" -v $(pwd)/elasticsearch:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:8.11.4
    

    起動すると、重要なセキュリティ情報を含むログ メッセージが出力されます。

    Elasticsearch が起動し、ログに役立つ情報が出力されます。

  2. elastic ユーザーのパスワードをローカルにコピーします。

  3. キーストアのパスワードを取得します。 新しいターミナル ウィンドウを開き、新しいコンテナーで対話型シェルを開きます。

    docker exec -it elasticsearch /bin/bash
    
  4. ./bin/elasticsearch-keystore を使用して、パスワードをコマンドラインに出力します。

    ./bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
    

    キーストアのパスワードをローカルにコピーします。

  5. 必要な Elasticsearch プラグインをインストールします。

    ./bin/elasticsearch-plugin install analysis-icu && /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji && /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-smartcn && /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-stempel
    
  6. プラグインがインストールされたら、 exitと入力してシェルを終了します。

  7. Elasticsearchコンテナを再起動して、プラグインを登録します。 CTRL+C はコンテナを停止します。 実行して再起動してください

    docker start -i elasticsearch
    
  8. 最初の起動時に、Elasticsearch は Liferay との HTTP 接続を暗号化するために必要なセキュリティ証明書を作成しました。 実行中のコンテナから certs フォルダを test-es-install/dxp/files/ フォルダにコピーします。

    docker cp elasticsearch:/usr/share/elasticsearch/config/certs/ dxp/files/
    
  9. Docker はこれらを Liferay コンテナにコピーし、Liferay はこれらのファイルから読み取る必要があるため、ファイルの権限が適切であることを確認してください。

    chmod -R a+rwx dxp/files/certs/
    

    これはローカルテスト専用です。 権限がシステムに適切であることを理解し、確認する必要があります。

  10. Liferay の設定で参照できるように、 elasticsearch コンテナの IPv4 アドレスを取得します。

    docker network inspect bridge
    

    IPv4 アドレスをローカルにコピーします。

Liferayをインストールする

Liferay が Elasticsearch に接続するために必要なプロパティを指定して、Liferay コンテナを実行します。

  1. まず、Elasticsearch 7 構成ファイルを入力します。 ファイル com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.configを作成します:

    touch dxp/files/osgi/configs/com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
    
  2. ファイルを開いて次の内容を指定します。 passwordtruststorePassword を Elasticsearch からコピーしたものに置き換え、 elasticsearch コンテナーの IPv4 が異なる場合は networkHostAddresses プロパティに挿入します。

    password="[ELASTIC_PASS]"
    truststorePassword="[KEYSTORE_PASS]"
    networkHostAddresses="https://172.17.0.2:9200"
    
    authenticationEnabled=B"true"
    httpSSLEnabled=B"true"
    logExceptionsOnly="false"
    productionModeEnabled=B"true"
    truststorePath="/opt/liferay/certs/http.p12"
    truststoreType="pkcs12"
    username="elastic"
    

    ファイルを保存して終了します。

  3. これで、セキュリティ証明書ファイルと構成ファイルが配置されました。 これらは、Liferay Dockerコンテナが読み取ることができるホストシステム上のフォルダに追加されています(test-es-install/dxp/files)。 Liferay コンテナを起動します。

    docker run -it --memory 9g --name liferay --publish 8080:8080 --volume $(pwd)/dxp:/mnt/liferay liferay/portal:7.4.3.132-ga132
    

    Liferay 7.3 を使用している場合は、上記のコマンドのバージョンを置き換えてください。

  4. チェックポイント: [コントロールパネル] → [設定] → [検索機能]でElasticsearch接続が有効になっていることを確認します。

    有効な接続が[検索機能]管理パネルに表示されます。

検索インデックスとスペルチェックインデックスを再作成します。 両方の再インデックス アクションは、[コントロール パネル] → [構成] → [検索] の [インデックス アクション] タブから実行されます。

演習ファイルのクリーンアップ

この演習で作成したすべてのアイテムをクリーンアップするには、まずコンテナを停止し、

  1. Docker コンテナを削除します。

    docker container rm elasticsearch liferay
    
  2. フォルダー構造を削除します。 まず、テストインストールフォルダの親(つまり、 ../test-es-install)にいることを確認し、次に実行します。

    rm -fr test-es-install
    

これにより、コンテナの作成に使用した Docker イメージだけが残ります。 必要に応じて、 docker image rm [image-name] コマンドでそれらを削除できます。