Dev Services for Elasticsearch
Elasticsearch関連のエクステンションがある場合(例: quarkus-elasticsearch-rest-client
や quarkus-hibernate-search-orm-elasticsearch
)、Dev Services for Elasticsearchは開発モードやテスト実行時に自動的にElasticsearchサーバを起動します。そのため、手動でサーバを起動する必要はありません。アプリケーションは自動的に設定されます。
Dev Services for Elasticsearchの有効化/無効化
Dev Services for Elasticsearchは、以下の場合を除き、自動的に有効化されます。
-
quarkus.devservices.enabled
がfalse
に設定されている場合 -
quarkus.elasticsearch.devservices.enabled
がfalse
に設定されている場合 -
hostsプロパティが設定されている場合。使用するエクステンションにより、次のいずれか:
-
quarkus.elasticsearch.hosts
-
quarkus.hibernate-search-orm.elasticsearch.hosts
Dev Services for Elasticsearchは、サーバーの起動にDockerを利用しています。Dockerに対応していない環境では、手動でサーバを起動するか、既に起動しているサーバに接続する必要があります。
共有Elasticsearch
アプリケーション間でサーバーを共有する必要がある場合があります。Dev Services for Elasticsearchは、 開発 モードで実行されている複数のQuarkusアプリケーションが1つのサーバーを共有できるように、 サービス検出 メカニズムを実装しています。
Dev Services for Elasticsearch は、コンテナの識別に使用される quarkus-dev-service-elasticsearch ラベルでコンテナを起動します。
|
複数の(共有)サーバーが必要な場合は、 quarkus.elasticsearch.devservices.service-name
属性を設定し、サーバー名を指定することができます。同じ値を持つコンテナを探すか、見つからない場合は新規に起動します。デフォルトのサービス名は elasticsearch
です。
共有は、開発モードではデフォルトで有効ですが、testモードでは無効です。共有は quarkus.elasticsearch.devservices.shared=false
で無効にすることができます。
ポートの設定
デフォルトでは、Dev Services for Elasticsearchはランダムなポートを選び、アプリケーションを設定します。 quarkus.elasticsearch.devservices.port
プロパティを設定することで、ポートを設定することができます。
Elasticsearchのhostsプロパティは、選択したポートで自動的に構成されることに注意してください。
イメージの設定
Dev Services for Elasticsearchは、Elasticsearchベースのイメージのみをサポートし、Opensearchは現時点ではサポートされていません。
デフォルトのイメージと異なるイメージを使用する必要がある場合、以下の方法で設定できます。
quarkus.elasticsearch.devservices.image-name={elasticsearch-image}
現在の制限事項
現在、Dev Services for Elasticsearchは1つのElasticsearchコンテナしか起動できないため、Hibernate Search Elasticsearchのデフォルトバックエンドのみがサポートされています。
設定リファレンス
ビルド時に固定される設定プロパティ - その他の設定プロパティは実行時にオーバーライド可能です。
型 |
デフォルト |
|
---|---|---|
If Dev Services for Elasticsearch has been explicitly enabled or disabled. Dev Services are generally enabled by default, unless there is an existing configuration present. For Elasticsearch, Dev Services starts a server unless Environment variable: |
boolean |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: |
int |
|
The Elasticsearch container image to use. Defaults to the elasticsearch image provided by Elastic. Environment variable: |
string |
|
The value for the ES_JAVA_OPTS env variable. Defaults to setting the heap to 512MB min - 1GB max. Environment variable: |
string |
|
Indicates if the Elasticsearch server managed by Quarkus Dev Services is shared. When shared, Quarkus looks for running containers using label-based service discovery. If a matching container is found, it is used, and so a second one is not started. Otherwise, Dev Services for Elasticsearch starts a new container.
The discovery uses the Environment variable: |
boolean |
|
The value of the Environment variable: |
string |
|