Dev Services Overview
What Are Dev Services?
Quarkus supports the automatic provisioning of unconfigured services in development and test mode. We refer to this capability as Dev Services. 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.
For a tutorial showing how to get started writing an application with persistence and Dev Services, see Your Second Quarkus Application.
Using Dev Services
Dev Services are designed to be frictionless, so they will be automatically started any time you include an extension which supports Dev Services, as long as you don’t configure a connection to an external service.
In order to use most Dev Services you will need a working container environment (remote environments are supported). If you don’t have a container environment, such as Docker or Podman, installed you will need to configure your services normally. |
The default startup timeout for Dev Services is 60s, if this is not enough you can increase it with the quarkus.devservices.timeout
property.
To configure a production service but continue to use Dev Services in development and test modes, use configuration profiles.
For example,
# configure your datasource
%prod.quarkus.datasource.db-kind = postgresql
%prod.quarkus.datasource.username = prod-admin
%prod.quarkus.datasource.password = super-secret
%prod.quarkus.datasource.jdbc.url = jdbc:postgresql://localhost:5432/mydatabase
Disabling Dev Services
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.
Platform Dev Services
This section lists all the Dev Services available in the Quarkus Platform.
AMQP
The AMQP Dev Service will be enabled when the quarkus-messaging-amqp
extension is present in your application, and
the broker address has not been explicitly configured. More information can be found in the
AMQP Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If Dev Services for AMQP has been explicitly enabled or disabled. Dev Services are generally enabled by default, unless there is an existing configuration present. For AMQP, Dev Services starts a broker unless Environment variable: Show more |
boolean |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
The image to use. Note that only ActiveMQ Artemis images are supported. Specifically, the image repository must end with Check the activemq-artemis-broker on Quay page to find the available versions. Environment variable: Show more |
string |
|
The value of the Environment variable: Show more |
string |
|
Indicates if the AMQP broker 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 AMQP starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared AMQP brokers. Environment variable: Show more |
string |
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
Apicurio Registry
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 in the
Apicurio Registry Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If Dev Services for Apicurio Registry has been explicitly enabled or disabled. Dev Services are generally enabled by default, unless there is an existing configuration present. For Apicurio Registry, Dev Services starts a registry unless Environment variable: Show more |
boolean |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
The Apicurio Registry image to use. Note that only Apicurio Registry 2.x images are supported. Specifically, the image repository must end with Environment variable: Show more |
string |
|
Indicates if the Apicurio Registry instance 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 Apicurio Registry starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared Apicurio Registry instances. Environment variable: Show more |
string |
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
Databases
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 in the Databases Dev Services Guide.
Quarkus provides Dev Services for all databases it supports. Most of these are run in a container, except H2 and Derby which are run in-process. Dev Services are supported for both JDBC and reactive drivers.
Those relational databases that are running in a container are started using Testcontainers and support "reusable instances";
this implies that if you add the property testcontainers.reuse.enable=true
in your Testcontainers configuration file,
a property file named .testcontainers.properties
in your user home, then the databases will not be stopped aggressively
after each run, and can be reused.
N.B. if you opt in for this feature, Quarkus will not reset the state of the database between runs unless you explicitly configure it to.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
||
---|---|---|---|---|
Whether this Dev Service should start with the application in dev mode or tests. Dev Services are enabled by default unless connection configuration (e.g. the JDBC URL or reactive client URL) is set explicitly. Environment variable: Show more |
boolean |
|||
The container image name for container-based Dev Service providers. This has no effect if the provider is not a container-based database, such as H2 or Derby. Environment variable: Show more |
string |
|||
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
|||
Generic properties that are passed for additional container configuration. Properties defined here are database-specific and are interpreted specifically in each database dev service implementation. Environment variable: Show more |
Map<String,String> |
|||
Generic properties that are added to the database connection URL. Environment variable: Show more |
Map<String,String> |
|||
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|||
The container start command to use for container-based Dev Service providers. This has no effect if the provider is not a container-based database, such as H2 or Derby. Environment variable: Show more |
string |
|||
The database name to use if this Dev Service supports overriding it. Environment variable: Show more |
string |
|||
The username to use if this Dev Service supports overriding it. Environment variable: Show more |
string |
|||
The password to use if this Dev Service supports overriding it. Environment variable: Show more |
string |
|||
The path to a SQL script to be loaded from the classpath and applied to the Dev Service database. This has no effect if the provider is not a container-based database, such as H2 or Derby. Environment variable: Show more |
string |
|||
The volumes to be mapped to the container. The map key corresponds to the host location; the map value is the container location. If the host location starts with "classpath:", the mapping loads the resource from the classpath with read-only permission. When using a file system location, the volume will be generated with read-write permission, potentially leading to data loss or modification in your file system. This has no effect if the provider is not a container-based database, such as H2 or Derby. Environment variable: Show more |
Map<String,String> |
|||
Whether to keep Dev Service containers running after a dev mode session or test suite execution to reuse them in the next dev mode session or test suite execution. Within a dev mode session or test suite execution, Quarkus will always reuse Dev Services as long as their configuration (username, password, environment, port bindings, …) did not change. This feature is specifically about keeping containers running when Quarkus is not running to reuse them across runs.
This configuration property is set to Environment variable: Show more |
boolean |
|
||
Whether the logs should be consumed by the JBoss logger. This has no effect if the provider is not a container-based database, such as H2 or Derby. Environment variable: Show more |
boolean |
|
Kafka
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 in the
Kafka Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If Dev Services for Kafka has been explicitly enabled or disabled. Dev Services are generally enabled by default, unless there is an existing configuration present. For Kafka, Dev Services starts a broker unless Environment variable: Show more |
boolean |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
Kafka dev service container type. Redpanda, Strimzi and kafka-native container providers are supported. Default is redpanda. For Redpanda: See https://docs.redpanda.com/current/get-started/quick-start/ and https://hub.docker.com/r/vectorized/redpanda For Strimzi: See https://github.com/strimzi/test-container and https://quay.io/repository/strimzi-test-container/test-container For Kafka Native: See https://github.com/ozangunalp/kafka-native and https://quay.io/repository/ogunalp/kafka-native Note that Strimzi and Kafka Native images are launched in Kraft mode. Environment variable: Show more |
|
|
The Kafka container image to use. Dependent on the provider. Environment variable: Show more |
string |
|
Indicates if the Kafka broker 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 Kafka starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared Kafka brokers. Environment variable: Show more |
string |
|
The topic-partition pairs to create in the Dev Services Kafka broker. After the broker is started, given topics with partitions are created, skipping already existing topics. For example, The topic creation will not try to re-partition existing topics with different number of partitions. Environment variable: Show more |
Map<String,Integer> |
|
Timeout for admin client calls used in topic creation. Defaults to 2 seconds. Environment variable: Show more |
|
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
|
Enables transaction support. Also enables the producer idempotence. Find more info about Redpanda transaction support on https://vectorized.io/blog/fast-transactions/. Notice that KIP-447 (producer scalability for exactly once semantic) and KIP-360 (Improve reliability of idempotent/transactional producer) are not supported. Environment variable: Show more |
boolean |
|
Port to access the Redpanda HTTP Proxy (pandaproxy). If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
About the Duration format
To write duration values, use the standard You can also use a simplified format, starting with a number:
In other cases, the simplified format is translated to the
|
Keycloak
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 in the
OIDC Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
Flag to enable (default) or disable Dev Services. When enabled, Dev Services for Keycloak automatically configures and starts Keycloak in Dev or Test mode, and when Docker is running. Environment variable: Show more |
boolean |
|
The container image name for Dev Services providers. Defaults to a Quarkus-based Keycloak image. For a WildFly-based distribution, use an image like Environment variable: Show more |
string |
|
Indicates if a Keycloak-X image is used. By default, the image is identified by Environment variable: Show more |
boolean |
|
Determines if the Keycloak container is shared. When shared, Quarkus uses label-based service discovery to find and reuse a running Keycloak container, so a second one is not started. Otherwise, if a matching container is not is found, a new container is started. The service discovery uses the Environment variable: Show more |
boolean |
|
The value of the Environment variable: Show more |
string |
|
A comma-separated list of class or file system paths to Keycloak realm files. This list is used to initialize Keycloak. The first value in this list is used to initialize default tenant connection properties. To learn more about Keycloak realm files, consult the Importing and Exporting Keycloak Realms documentation. Environment variable: Show more |
list of string |
|
Aliases to additional class or file system resources that are used to initialize Keycloak. Each map entry represents a mapping between an alias and a class or file system resource path. Environment variable: Show more |
Map<String,String> |
|
Additional class or file system resources that are used to initialize Keycloak. Each map entry represents a mapping between a class or file system resource path alias and the Keycloak container location. Environment variable: Show more |
Map<String,String> |
|
The Environment variable: Show more |
string |
|
Show Keycloak log messages with a "Keycloak:" prefix. Environment variable: Show more |
boolean |
|
Keycloak start command. Use this property to experiment with Keycloak start options, see Environment variable: Show more |
string |
|
The name of the Keycloak realm. This property is used to create the realm if the realm file pointed to by the Environment variable: Show more |
string |
|
Specifies whether to create the Keycloak realm when no realm file is found at the Environment variable: Show more |
boolean |
|
Specifies whether to create the default client id Environment variable: Show more |
boolean |
|
Specifies whether to start the container even if the default OIDC tenant is disabled. Setting this property to true may be necessary in a multi-tenant OIDC setup, especially when OIDC tenants are created dynamically. Environment variable: Show more |
boolean |
|
A map of Keycloak usernames to passwords. If empty, default users Environment variable: Show more |
Map<String,String> |
|
A map of roles for Keycloak users. If empty, default roles are assigned: Environment variable: Show more |
Map<String,List<String>> |
|
The specific port for the dev service to listen on. If not specified, a random port is selected. Environment variable: Show more |
int |
|
Environment variables to be passed to the container. Environment variable: Show more |
Map<String,String> |
|
Memory limit for Keycloak container If not specified, 750MiB is the default memory limit. Environment variable: Show more |
|
|
The WebClient timeout. Use this property to configure how long an HTTP client used by OIDC dev service admin client will wait for a response from OpenId Connect Provider when acquiring admin token and creating realm. Environment variable: Show more |
|
About the Duration format
To write duration values, use the standard You can also use a simplified format, starting with a number:
In other cases, the simplified format is translated to the
|
About the MemorySize format
A size configuration option recognizes strings in this format (shown as a regular expression): If no suffix is given, assume bytes. |
Kubernetes
The Kubernetes Dev Service will be enabled when the kubernetes-client
extension is present in your application, and
the API server address has not been explicitly configured. More information can be found in the
Kubernetes Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If Dev Services for Kubernetes should be used. (default to true) If this is true and kubernetes client is not configured then a kubernetes cluster will be started and will be used. Environment variable: Show more |
boolean |
|
The kubernetes api server version to use. If not set, Dev Services for Kubernetes will use the latest supported version of the given flavor. see https://github.com/dajudge/kindcontainer/blob/master/k8s-versions.json Environment variable: Show more |
string |
|
The flavor to use (kind, k3s or api-only). Default to api-only. Environment variable: Show more |
|
|
By default, if a kubeconfig is found, Dev Services for Kubernetes will not start. Set this to true to override the kubeconfig config. Environment variable: Show more |
boolean |
|
Indicates if the Kubernetes cluster 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 Kubernetes starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared Kubernetes clusters. Environment variable: Show more |
string |
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
MongoDB
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 in the
MongoDB Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If DevServices has been explicitly enabled or disabled. DevServices is generally enabled by default, unless there is an existing configuration present. When DevServices is enabled Quarkus will attempt to automatically configure and start a database when running in Dev or Test mode. Environment variable: Show more |
boolean |
|
The container image name to use, for container based DevServices providers. Environment variable: Show more |
string |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
Generic properties that are added to the connection URL. Environment variable: Show more |
Map<String,String> |
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
|
Indicates if the MongoDB 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 MongoDB starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the Environment variable: Show more |
string |
|
RabbitMQ
The RabbitMQ Dev Service will be enabled when the quarkus-messaging-rabbitmq
extension is present in your application, and
the broker address has not been explicitly configured. More information can be found in the
RabbitMQ Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If Dev Services for RabbitMQ has been explicitly enabled or disabled. Dev Services are generally enabled by default, unless there is an existing configuration present. For RabbitMQ, Dev Services starts a broker unless Environment variable: Show more |
boolean |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
Optional fixed port for the RabbitMQ management plugin. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
The image to use. Note that only official RabbitMQ images are supported. Specifically, the image repository must end with Environment variable: Show more |
string |
|
Indicates if the RabbitMQ broker 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 RabbitMQ starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared RabbitMQ brokers. Environment variable: Show more |
string |
|
Type of exchange: direct, topic, headers, fanout, etc. Environment variable: Show more |
string |
|
Should the exchange be deleted when all queues are finished using it? Environment variable: Show more |
boolean |
|
Should the exchange remain after restarts? Environment variable: Show more |
boolean |
|
What virtual host should the exchange be associated with? Environment variable: Show more |
string |
|
Extra arguments for the exchange definition. Environment variable: Show more |
Map<String,String> |
|
Should the queue be deleted when all consumers are finished using it? Environment variable: Show more |
boolean |
|
Should the queue remain after restarts? Environment variable: Show more |
boolean |
|
What virtual host should the queue be associated with? Environment variable: Show more |
string |
|
Extra arguments for the queue definition. Environment variable: Show more |
Map<String,String> |
|
Source exchange to bind to. Defaults to name of binding instance. Environment variable: Show more |
string |
|
Routing key specification for the source exchange. Environment variable: Show more |
string |
|
Destination exchange or queue to bind to. Defaults to name of binding instance. Environment variable: Show more |
string |
|
Destination type for binding: queue, exchange, etc. Environment variable: Show more |
string |
|
What virtual host should the binding be associated with? Environment variable: Show more |
string |
|
Extra arguments for the binding definition. Environment variable: Show more |
Map<String,String> |
|
Virtual hosts that should be predefined after starting the RabbitMQ broker. Environment variable: Show more |
list of string |
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
Pulsar
The Pulsar Dev Service will be enabled when the quarkus-messaging-pulsar
extension is present in your application, and
the broker address has not been explicitly configured. More information can be found in the
Pulsar Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If Dev Services for Pulsar has been explicitly enabled or disabled. Dev Services are generally enabled by default, unless there is an existing configuration present. For Pulsar, Dev Services starts a broker unless Environment variable: Show more |
boolean |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
The image to use. Note that only Apache Pulsar images are supported. Specifically, the image repository must end with Environment variable: Show more |
string |
|
Indicates if the Pulsar broker 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 Pulsar starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared Pulsar brokers. Environment variable: Show more |
string |
|
Broker config to set on the Pulsar instance Environment variable: Show more |
Map<String,String> |
Redis
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 in the
Redis Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If DevServices has been explicitly enabled or disabled. DevServices is generally enabled by default, unless there is an existing configuration present. When DevServices is enabled Quarkus will attempt to automatically configure and start a database when running in Dev or Test mode and when Docker is running. Environment variable: Show more |
boolean |
|
The container image name to use, for container based DevServices providers. If you want to use Redis Stack modules (bloom, graph, search…), use: Environment variable: Show more |
string |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
Indicates if the Redis 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 Redis starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared Redis servers. Environment variable: Show more |
string |
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
Vault
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 in the
Vault Guide.
Infinispan
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 in the
Infinispan Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
If DevServices has been explicitly enabled or disabled. DevServices is generally enabled by default, unless there is an existing configuration present. When DevServices is enabled Quarkus will attempt to automatically configure and start a database when running in Dev or Test mode and when Docker is running. Environment variable: Show more |
boolean |
|
When the configuration is empty, an Infinispan default client is automatically created to connect to the running dev service. However, there are scenarios where creating this client is unnecessary, yet we still need to spin up an Infinispan Server. In such cases, this property serves to determine whether the client should be created by default or not by the extension. Environment variable: Show more |
boolean |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
Indicates if the Infinispan 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 Infinispan starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared Infinispan servers. Environment variable: Show more |
string |
|
The image to use. Note that only official Infinispan images are supported. Environment variable: Show more |
string |
|
List of the artifacts to automatically download and add to the Infinispan server libraries. For example a Maven coordinate (org.postgresql:postgresql:42.3.1) or a dependency location url. If an invalid value is passed, the Infinispan server will throw an error when trying to start. Environment variable: Show more |
list of string |
|
Add a site name to start the Infinispan Server Container with Cross Site Replication enabled (ex. lon). Cross Site Replication is the capability to connect two separate Infinispan Server Clusters that might run in different Data Centers, and configure backup caches to copy the data across the clusters with active-active or active-passive replication. See more about Cross Site Replication in the Infinispan Documentation https://infinispan.org/docs/stable/titles/xsite/xsite.html Configure Environment variable: Show more |
string |
|
If you are running an Infinispan Server already in docker, if the containers use the same mcastPort they will form a cluster. Set a different mcastPort to create a separate cluster in Docker (e. 46656). A common use case in a local Docker development mode, is the need of having two different Infinispan Clusters with Cross Site Replication enabled. see https://github.com/infinispan/infinispan-simple-tutorials/blob/main/infinispan-remote/cross-site-replication/docker-compose/ Environment variable: Show more |
int |
|
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
|
Infinispan Server configuration chunks to be passed to the container. Environment variable: Show more |
list of string |
Elasticsearch
The Elasticsearch Dev Service will be enabled when one of the Elasticsearch based extensions (Elasticsearch client or Hibernate Search ORM Elasticsearch) is present in your application, and the server address has not been explicitly configured. More information can be found in the Elasticsearch Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
||
---|---|---|---|---|
Whether this Dev Service should start with the application in dev mode or tests. Dev Services are enabled by default
unless connection configuration (e.g. Environment variable: Show more |
boolean |
|||
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|||
The Elasticsearch distribution to use. Defaults to a distribution inferred from the explicitly configured Environment variable: Show more |
|
|||
The Elasticsearch container image to use. Defaults depend on the configured
Environment variable: Show more |
string |
|||
The value for the ES_JAVA_OPTS env variable. Environment variable: Show more |
string |
|
||
Whether 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 Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
||
The value of the This property is used when This property is used when you need multiple shared Elasticsearch servers. Environment variable: Show more |
string |
|
||
Environment variables that are passed to the container. Environment variable: Show more |
Map<String,String> |
|||
Whether to keep Dev Service containers running after a dev mode session or test suite execution to reuse them in the next dev mode session or test suite execution. Within a dev mode session or test suite execution, Quarkus will always reuse Dev Services as long as their configuration (username, password, environment, port bindings, …) did not change. This feature is specifically about keeping containers running when Quarkus is not running to reuse them across runs.
This configuration property is set to Environment variable: Show more |
boolean |
|
Observability
The Observability Dev Services will be enabled when the quarkus-observability-devservices
extension is present in your application, and
there is at least one dev resource on the classpath. More information can be found in the
Observability Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Type |
Default |
---|---|---|
Type |
Default |
|
If DevServices has been explicitly enabled or disabled. DevServices is generally enabled by default, unless there is an existing configuration present. When DevServices is enabled Quarkus will attempt to automatically configure and start a containers when running in Dev or Test mode and when Docker is running. Environment variable: Show more |
boolean |
|
Indicates if the container 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 starts a new container. The discovery uses the Container sharing is only used in dev mode. Environment variable: Show more |
boolean |
|
The value of the This property is used when you need multiple shared containers. Environment variable: Show more |
string |
|
The username. Environment variable: Show more |
string |
|
The password. Environment variable: Show more |
string |
|
The port of the Grafana container. Environment variable: Show more |
int |
|
The timeout. Environment variable: Show more |
|
|
The name of the Grafana LGTM Docker image. Environment variable: Show more |
string |
|
The Docker network aliases. Environment variable: Show more |
list of string |
|
The label of the container. Environment variable: Show more |
string |
|
The LGTM’s OTLP protocol. Environment variable: Show more |
string |
|
If DevServices has been explicitly enabled or disabled. DevServices is generally enabled by default, unless there is an existing configuration present. When DevServices is enabled Quarkus will attempt to automatically configure and start a containers when running in Dev or Test mode and when Docker is running. Environment variable: Show more |
boolean |
|
Enable simplified usage of dev resources, instead of full observability processing. Make sure @code{enabled} is set to false. Environment variable: Show more |
boolean |
|
Do we start the dev services in parallel. Environment variable: Show more |
boolean |
|
About the Duration format
To write duration values, use the standard You can also use a simplified format, starting with a number:
In other cases, the simplified format is translated to the
|
Dev Services beyond the Quarkus Platform
Many Quarkiverse extensions which are not in the Quarkus Platform also offer Dev Services.
Here are some highlights.
Neo4j
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 in the
Neo4j Guide.
WireMock
The WireMock extension starts WireMock as a Dev Service. It is a test-focussed extension, designed to run in dev and test mode only. More information can be found in the WireMock Guide.
Microcks
The Microcks Quarkus extension includes a Microcks Dev Service. The Dev Service manages mocks for dependencies and contract-testing your API endpoints. See the extension README.md for more information.