Quarkus supports the automatic provisioning of unconfigured services in development and test mode. We refer to this capability as Dev Services. From a developer’s perspective this means that if you include an extension and don’t configure it then Quarkus will automatically start the relevant service (usually using Testcontainers behind the scenes) and wire up your application to use this service.
All this functionality is part of the Quarkus deployment
modules, so does not affect the production application in any
way. If you want to disable all Dev Services you can use the quarkus.devservices.enabled=false
config property, although
in most cases this is not necessary as simply configuring the service will result in the Dev Service being disabled automatically.
Note that the default startup timeout is 60s, if this is not enough you can increase it with the quarkus.devservices.timeout
property.
This page lists all the Dev Services that Quarkus supports.
Note
|
In order to use Dev Services you will generally need a working Docker environment (remote environments are supported). If you don’t have Docker installed you will need to configure your services normally. |
The AMQP Dev Service will be enabled when the quarkus-smallrye-reactive-messaging-amqp
extension is present in your application, and
the broker address has not been explicitly configured. More information can be found at the
AMQP Dev Services Guide.
The Apicurio Dev Service will be enabled when the quarkus-apicurio-registry-avro
extension is present in your application, and it’s
address has not been explicitly configured. More information can be found at the
Apicurio Registry Dev Services Guide.
The database Dev Services will be enabled when a reactive or JDBC datasource extension is present in the application, and the database URL has not been configured. More information can be found at the Datasource Guide.
Quarkus provides Dev Services for all databases it supports except Oracle. Most of these are run in a container, with the exception of H2 and Derby which are run in process. Dev Services are supported for both JDBC and reactive drivers.
The Kafka Dev Service will be enabled when the quarkus-kafka-client
extension is present in your application, and
the broker address has not been explicitly configured. More information can be found at the
Kafka Dev Services Guide.
The Keycloak Dev Service will be enabled when the quarkus-oidc
extension is present in your application, and
the server address has not been explicitly configured. More information can be found at the
OIDC Dev Services Guide.
The Kogito Dev Service will be enabled when either kogito-quarkus
or kogito-quarkus-processes
extension is present in your application. More information can be found at the Kogito Dev Services Guide.
The MongoDB Dev Service will be enabled when the quarkus-mongodb-client
extension is present in your application, and
the server address has not been explicitly configured. More information can be found at the
MongoDB Guide.
The RabbitMQ Dev Service will be enabled when the quarkus-smallrye-reactive-messaging-rabbitmq
extension is present in your application, and
the broker address has not been explicitly configured. More information can be found at the
RabbitMQ Dev Services Guide.
The Redis Dev Service will be enabled when the quarkus-redis-client
extension is present in your application, and
the server address has not been explicitly configured. More information can be found at the
Redis Dev Services Guide.
The Vault Dev Service will be enabled when the quarkus-vault
extension is present in your application, and
the server address has not been explicitly configured. More information can be found at the
Vault Guide.
The Neo4j Dev Service will be enabled when the quarkus-neo4j
extension is present in your application, and
the server address has not been explicitly configured. More information can be found at the
Neo4j Guide.
The Infinispan Dev Service will be enabled when the quarkus-infinispan-client
extension is present in your application, and
the server address has not been explicitly configured. More information can be found at the
Infinispan Guide.