Visão Geral dos Dev Services
O Quarkus oferece suporte ao provisionamento automático de serviços não configurados no modo de desenvolvimento e teste. Referimo-nos a esse recurso como Dev Services. Do ponto de vista do desenvolvedor, isso significa que, se você incluir uma extensão e não a configurar, o Quarkus iniciará automaticamente o serviço relevante (geralmente usando Testcontainers nos bastidores) e conectará sua aplicação para usar esse serviço.
Toda essa funcionalidade faz parte dos módulos do deployment do Quarkus e, portanto, não afeta a aplicação de produção de forma alguma. Se quiser desativar todos os Dev Services, você pode usar a propriedade de configuração quarkus.devservices.enabled=false, embora na maioria dos casos isso não seja necessário, pois a simples configuração do serviço fará com que o Dev Service seja desativado automaticamente.
Note que o tempo limite de arranque predefinido é de 60s, se não for suficiente, pode aumentá-lo com a propriedade quarkus.devservices.timeout.
Esta página lista todos os Dev Services que o Quarkus suporta.
| Para usar os Dev Services, você geralmente precisa de um ambiente Docker em funcionamento (há suporte para ambientes remotos). Se você não tiver o Docker instalado, precisará configurar seus serviços normalmente. |
AMQP
O Dev Service AMQP será ativado quando a extensão quarkus-smallrye-reactive-messaging-amqp estiver presente em sua aplicação e o endereço do broker não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Services do AMQP.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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 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 Environment variable: Show more |
booleano |
|
The value of the Environment variable: Show more |
string |
|
Apicurio Registry
O Dev Service Apicurio será ativado quando a extensão quarkus-apicurio-registry-avro estiver presente em sua aplicação e seu endereço não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Services do Apicurio Registry .
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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 Environment variable: Show more |
booleano |
|
The value of the Environment variable: Show more |
string |
|
Bases de Dados
Os Dev Services de banco de dados serão ativados quando uma extensão de fonte de dados reativa ou JDBC estiver presente na aplicação e o URL do banco de dados não tiver sido configurado. Mais informações podem ser encontradas no Guia de Dev Services de Bancos de Dados .
O Quarkus fornece Dev Services para todos os bancos de dados compatíveis. A maioria deles é executada em um contêiner, exceto o H2 e o Derby, que são executados no processo. Os Dev Services são compatíveis com drivers JDBC e reativos.
Esses bancos de dados relacionais que estão sendo executados em um contêiner são iniciados usando Testcontainers e suportam "instâncias reutilizáveis"; isso significa que, se você adicionar a propriedade testcontainers.reuse.enable=true no arquivo de configuração do Testcontainers, um arquivo de propriedade chamado .testcontainers.properties na home do usuário, os bancos de dados não serão interrompidos de forma agressiva após cada execução e poderão ser reutilizados.
Nota: se optar por esta funcionalidade, o Quarkus não reiniciará o estado da base de dados entre execuções, a menos que o configure explicitamente.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
The container image name to use, for container based DevServices providers. If the provider is not container based (e.g. a H2 Database) then this has no effect. 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 |
|
The container start command to use, for container based DevServices providers. If the provider is not container based (e.g. a H2 Database) then this has no effect. Environment variable: Show more |
string |
|
The name of the database 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 |
|
Path to a SQL script that will be loaded from the classpath and applied to the Dev Service database If the provider is not container based (e.g. a H2 or Derby Database) then this has no effect. Environment variable: Show more |
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 |
|
|
Generic properties that are added to the database connection URL. Environment variable: Show more |
|
|
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 |
booleano |
|
The container image name to use, for container based DevServices providers. If the provider is not container based (e.g. a H2 Database) then this has no effect. Environment variable: Show more |
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 |
|
|
Generic properties that are added to the database connection URL. Environment variable: Show more |
|
|
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 DevServices providers. If the provider is not container based (e.g. a H2 Database) then this has no effect. Environment variable: Show more |
string |
|
The name of the database 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 |
|
Path to a SQL script that will be loaded from the classpath and applied to the Dev Service database If the provider is not container based (e.g. a H2 or Derby Database) then this has no effect. Environment variable: Show more |
string |
Kafka
O Dev Service Kafka será ativado quando a extensão quarkus-kafka-client estiver presente em sua aplicação e o endereço do broker não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Services do Kafka .
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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://vectorized.io/docs/quick-start-docker/ 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 Environment variable: Show more |
booleano |
|
The value of the Environment variable: Show more |
string |
|
Timeout for admin client calls used in topic creation. Defaults to 2 seconds. Environment variable: Show more |
|
|
Enables transaction support. Also enables the producer idempotence. Find more info about Red Panda 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 |
booleano |
|
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, Environment variable: Show more |
|
|
About the Duration format
The format for durations uses the standard You can also provide duration values starting with a number.
In this case, if the value consists only of a number, the converter treats the value as seconds.
Otherwise, |
Keycloak
O Dev Service Keycloak será ativado quando a extensão quarkus-oidc estiver presente em sua aplicação e o endereço do servidor não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Services do OIDC .
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
If DevServices has been explicitly enabled or disabled. When DevServices is enabled Quarkus will attempt to automatically configure and start Keycloak when running in Dev or Test mode and when Docker is running. Environment variable: Show more |
booleano |
|
The container image name to use, for container based DevServices providers. Image with a Quarkus based distribution is used by default. Image with a WildFly based distribution can be selected instead, for example: 'quay.io/keycloak/keycloak:19.0.3-legacy'. Note Keycloak Quarkus and Keycloak WildFly images are initialized differently. By default, Dev Services for Keycloak will assume it is a Keycloak Quarkus image if the image version does not end with a '-legacy' string. Set 'quarkus.keycloak.devservices.keycloak-x-image' to override this check. Environment variable: Show more |
string |
|
If Keycloak-X image is used. By default, Dev Services for Keycloak will assume a Keycloak-X image is used if the image name contains a 'keycloak-x' string. Set 'quarkus.keycloak.devservices.keycloak-x-image' to override this check which may be necessary if you build custom Keycloak-X or Keycloak images. You do not need to set this property if the default check works. Environment variable: Show more |
booleano |
|
Indicates if the Keycloak 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 for Keycloak starts a new container.
The discovery uses the Environment variable: Show more |
booleano |
|
The value of the Environment variable: Show more |
string |
|
The comma-separated list of class or file system paths to Keycloak realm files which will be used to initialize Keycloak. The first value in this list will be used to initialize default tenant connection properties. Environment variable: Show more |
list of string |
|
The JAVA_OPTS passed to the keycloak JVM Environment variable: Show more |
string |
|
Show Keycloak log messages with a "Keycloak:" prefix. Environment variable: Show more |
booleano |
|
Keycloak start command. Use this property to experiment with Keycloak start options, see Environment variable: Show more |
string |
|
The Keycloak realm name. This property will be used to create the realm if the realm file pointed to by the 'realm-path' property does not exist, default value is 'quarkus' in this case. If the realm file pointed to by the 'realm-path' property exists then it is still recommended to set this property for Dev Services for Keycloak to avoid parsing the realm file in order to determine the realm name. Environment variable: Show more |
string |
|
Indicates if the Keycloak realm has to be created when the realm file pointed to by the 'realm-path' property does not exist. Disable it if you’d like to create a realm using Keycloak Administration Console or Keycloak Admin API from Environment variable: Show more |
booleano |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Environment variable: Show more |
int |
|
The Keycloak users map containing the username and password pairs. If this map is empty then two users, 'alice' and 'bob' with the passwords matching their names will be created. This property will be used to create the Keycloak users if the realm file pointed to by the 'realm-path' property does not exist. Environment variable: Show more |
|
|
The Keycloak user roles. If this map is empty then a user named 'alice' will get 'admin' and 'user' roles and all other users will get a 'user' role. This property will be used to create the Keycloak roles if the realm file pointed to by the 'realm-path' property does not exist. Environment variable: Show more |
|
Kogito
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 in the Kogito Dev Services Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 Data Index when running in Dev mode. Show more |
booleano |
verdadeiro |
string |
quay.io/kiegroup/kogito-data-index-ephemeral |
|
Optional fixed port the dev service will listen to. If not defined, the port will be chosen randomly. Show more |
int |
8180 |
Indicates if the Data Index 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 Kogito starts a new container. The discovery uses the Show more |
booleano |
verdadeiro |
The value of the Show more |
string |
kogito-data-index |
Kubernetes
O Dev Service Kubernetes será ativado quando a extensão kubernetes-client estiver presente em sua aplicação e o endereço do servidor da API não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Services do Kubernetes .
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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 |
booleano |
|
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 Environment variable: Show more |
booleano |
|
The value of the Environment variable: Show more |
string |
|
MongoDB
O Dev Service MongoDB será ativado quando a extensão quarkus-mongodb-client estiver presente em sua aplicação e o endereço do servidor não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do MongoDB .
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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 |
|
RabbitMQ
O Dev Service RabbitMQ será ativado quando a extensão quarkus-smallrye-reactive-messaging-rabbitmq estiver presente em sua aplicação e o endereço do broker não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Services do RabbitMQ.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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 Environment variable: Show more |
booleano |
|
The value of the 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 |
booleano |
|
Should the exchange remain after restarts? Environment variable: Show more |
booleano |
|
Extra arguments for the exchange definition. Environment variable: Show more |
|
|
Should the queue be deleted when all consumers are finished using it? Environment variable: Show more |
booleano |
|
Should the queue remain after restarts? Environment variable: Show more |
booleano |
|
Extra arguments for the queue definition. Environment variable: Show more |
|
|
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 |
|
Extra arguments for the binding definition. Environment variable: Show more |
|
Redis
O Dev Service Redis será ativado quando a extensão quarkus-redis-client estiver presente em sua aplicação e o endereço do servidor não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Service do Redis .
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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 Environment variable: Show more |
booleano |
|
The value of the 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 database when running in Dev or Test mode and when Docker is running. Environment variable: Show more |
booleano |
|
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 Environment variable: Show more |
booleano |
|
The value of the Environment variable: Show more |
string |
|
Vault
O Dev Service Vault será ativado quando a extensão quarkus-vault estiver presente em sua aplicação e o endereço do servidor não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Vault .
Neo4j
O Dev Service Neo4j será ativado quando a extensão quarkus-neo4j estiver presente em sua aplicação e o endereço do servidor não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Neo4j .
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 Guide.
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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 |
booleano |
|
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 Environment variable: Show more |
booleano |
|
The value of the 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 |
Elasticsearch
O Dev Service Elasticsearch será ativado quando uma das extensões baseadas no Elasticsearch (cliente Elasticsearch ou Hibernate Search ORM Elasticsearch) estiver presente em sua aplicação e o endereço do servidor não tiver sido configurado explicitamente. Mais informações podem ser encontradas no Guia do Dev Services do Elasticsearch .
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Tipo |
Padrão |
|
|---|---|---|
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: Show more |
booleano |
|
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 container image to use. Defaults to the elasticsearch image provided by Elastic. Environment variable: Show more |
string |
|
The value for the ES_JAVA_OPTS env variable. Defaults to setting the heap to 512MB min - 1GB max. Environment variable: Show more |
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: Show more |
booleano |
|
The value of the Environment variable: Show more |
string |
|