MongoDBのDev Services
QuarkusはDev Servicesという機能をサポートしており、設定なしでさまざまなデータソースを作成できます。MongoDBの場合、このサポートはデフォルトのMongoDB接続にまで及びます。
つまり、 quarkus.mongodb.connection-string
や quarkus.mongodb.hosts
を設定していない場合、Quarkus はテストの実行中や開発モードのときに自動的に MongoDB コンテナを起動し、自動的に接続を設定します。
MongoDB Dev Servicesは Testcontainers MongoDBモジュール をベースにしており、単一ノードのレプリカセットを起動することができます。
本番環境のアプリケーションを実行する場合、MongoDBの接続は通常通りに設定する必要があります。本番環境のデータベースの設定を application.properties
に含めてDev Servicesを継続して使用する場合は、 %prod.
プロファイルを使用してMongoDBの設定を定義することをお勧めします。
共有サーバー
ほとんどの場合、アプリケーション間でサーバーを共有する必要があります。 Dev Services for MongoDBは、 dev モードで実行されている複数のQuarkusアプリケーションが1つのサーバーを共有できるように、 サービス検出 メカニズムを実装しています。
Dev Services for MongoDB はコンテナを識別するための quarkus-dev-service-mongodb ラベルでコンテナを起動します。
|
複数の(共有)サーバーが必要な場合は、 quarkus.mongodb.devservices.service-name
属性を設定し、サーバー名を指定します。
同じ値を持つコンテナを探すか、見つからない場合は新しいコンテナを起動します。デフォルトのサービス名は mongodb
です。
共有はdevモードではデフォルトで有効ですが、testモードでは無効になります。共有は quarkus.mongodb.devservices.shared=false
で無効にできます。