Dev Services 概述
什么是 Dev Services?
Quarkus 支持在开发和测试模式下自动配置未配置的服务。我们将此功能称为 Dev Services。如果您包含一个扩展,但不配置它,那么 Quarkus 将自动启动相关服务(通常在幕后使用 Testcontainers),并将您的应用程序连接到此服务。
有关如何开始编写具有持久性和 Dev Services 的应用程序的教程,请参阅您的第二个 Quarkus 应用程序。
使用 Dev Services
Dev Services 旨在实现无摩擦,因此只要您包含支持 Dev Services 的扩展,并且不配置与外部服务的连接,它们就会自动启动。
为了使用大多数 Dev Services,您需要一个可用的容器环境(支持远程环境)。如果您没有安装容器环境(如 Docker 或 Podman),则需要正常配置您的服务。 |
Dev Services 的默认启动超时时间为 60 秒,如果这不够,您可以使用 quarkus.devservices.timeout
属性增加它。
要配置生产服务但继续在开发和测试模式下使用 Dev Services,请使用配置配置文件。
例如,
# 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://:5432/mydatabase
禁用 Dev Services
所有这些功能都是 Quarkus deployment
模块的一部分,因此不会以任何方式影响生产应用程序。如果您想禁用所有 Dev Services,您可以使用 quarkus.devservices.enabled=false
配置属性,尽管在大多数情况下,这没有必要,因为简单地配置服务将导致 Dev Service 自动禁用。
Compose Dev Services
Quarkus Compose Dev Services允许您使用 Compose 规范定义自定义 dev services。
平台 Dev Services
本节列出了 Quarkus 平台中所有可用的 Dev Services。
AMQP
当您的应用程序中存在 quarkus-messaging-amqp
扩展,并且尚未显式配置代理地址时,将启用 AMQP Dev Service。更多信息可以在AMQP Dev Services 指南中找到。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
是否已显式启用或禁用 AMQP 的 Dev Services。Dev Services 通常默认启用,除非存在现有配置。对于 AMQP,Dev Services 启动一个代理,除非设置了 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
要使用的镜像。请注意,仅支持 ActiveMQ Artemis 镜像。具体来说,镜像存储库必须以 请查看 Quay 页面上的 activemq-artemis-broker 以查找可用版本。 环境变量: 显示更多 |
字符串 |
|
要传递给容器的 环境变量: 显示更多 |
字符串 |
|
指示 Quarkus Dev Services 管理的 AMQP 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用该容器,因此不会启动第二个容器。否则,AMQP 的 Dev Services 将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到启动的容器的 当您需要多个共享 AMQP 代理时,会使用此属性。 环境变量: 显示更多 |
字符串 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
Apicurio Registry
当您的应用程序中存在 quarkus-apicurio-registry-avro
扩展,并且尚未显式配置其地址时,将启用 Apicurio Dev Service。更多信息可以在Apicurio Registry Dev Services 指南中找到。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
是否已显式启用或禁用 Apicurio Registry 的 Dev Services。Dev Services 通常默认启用,除非存在现有配置。对于 Apicurio Registry,Dev Services 启动一个注册表,除非设置了 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
要使用的 Apicurio Registry 镜像。请注意,仅支持 Apicurio Registry 2.x 镜像。具体来说,镜像存储库必须以 环境变量: 显示更多 |
字符串 |
|
指示 Quarkus Dev Services 管理的 Apicurio Registry 实例是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用该容器,因此不会启动第二个容器。否则,Apicurio Registry 的 Dev Services 将启动一个新容器。 该发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到启动的容器的 当您需要多个共享 Apicurio Registry 实例时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
数据库
当应用程序中存在响应式或 JDBC 数据源扩展,并且尚未配置数据库 URL 时,将启用数据库 Dev Services。更多信息可以在数据库 Dev Services 指南中找到。
Quarkus 为其支持的所有数据库提供 Dev Services。这些服务中的大多数都在容器中运行,除了 H2 和 Derby,它们在进程中运行。JDBC 和响应式驱动程序都支持 Dev Services。
那些在容器中运行的关系数据库使用 Testcontainers 启动,并支持“可重用实例”;这意味着如果您在 Testcontainers 配置文件中添加属性 testcontainers.reuse.enable=true
,即在您的用户主目录中名为 .testcontainers.properties
的属性文件中,那么数据库在每次运行后不会被强制停止,并且可以重复使用。
注意:如果您选择此功能,Quarkus 将不会在运行之间重置数据库的状态,除非您显式地配置它。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
||
---|---|---|---|---|
此开发服务是否应在开发模式或测试中随应用程序一起启动。 默认情况下启用 Dev Service,除非显式设置连接配置(例如 JDBC URL 或反应式客户端 URL)。 环境变量: 显示更多 |
布尔值 |
|||
基于容器的 Dev Service 提供程序的容器映像名称。 如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。 环境变量: 显示更多 |
字符串 |
|||
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
|||
传递用于其他容器配置的通用属性。 此处定义的属性是特定于数据库的,并且在每个数据库 dev service 实现中进行专门解释。 环境变量: 显示更多 |
Map<String,String> |
|||
添加到数据库连接 URL 的通用属性。 环境变量: 显示更多 |
Map<String,String> |
|||
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|||
用于基于容器的 Dev Service 提供程序的容器启动命令。 如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。 环境变量: 显示更多 |
字符串 |
|||
如果此 Dev Service 支持覆盖数据库名称,则要使用的数据库名称。 环境变量: 显示更多 |
字符串 |
|||
如果此 Dev Service 支持覆盖用户名,则要使用的用户名。 环境变量: 显示更多 |
字符串 |
|||
如果此 Dev Service 支持覆盖密码,则要使用的密码。 环境变量: 显示更多 |
字符串 |
|||
要从类路径加载并应用于 Dev Service 数据库的 SQL 脚本的路径。 如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。 环境变量: 显示更多 |
字符串列表 |
|||
要从类路径加载并应用于使用 SYS 特权用户的 Dev Service 数据库的 SQL 脚本的路径。并非所有数据库都提供特权用户。在这些情况下,将忽略该属性。如果提供程序不是基于容器的数据库(如 H2 或 Derby),则此属性无效。 环境变量: 显示更多 |
字符串列表 |
|||
要映射到容器的卷。 映射键对应于主机位置;映射值是容器位置。如果主机位置以“classpath:”开头,则映射将以只读权限从类路径加载资源。 使用文件系统位置时,将以读写权限生成卷,这可能会导致文件系统中的数据丢失或修改。 如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。 环境变量: 显示更多 |
Map<String,String> |
|||
是否在开发模式会话或测试套件执行之后保持开发服务容器运行,以便在下一个开发模式会话或测试套件执行中重用它们。 在开发模式会话或测试套件执行中,只要其配置(用户名、密码、环境、端口绑定等)没有更改,Quarkus 将始终重用 Dev Services。此功能专门用于在 Quarkus 未运行时保持容器运行,以便在多次运行中重用它们。
此配置属性默认设置为 环境变量: 显示更多 |
布尔值 |
|
||
日志是否应由 JBoss 记录器使用。 如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。 环境变量: 显示更多 |
布尔值 |
|
Kafka
当您的应用程序中存在 quarkus-kafka-client
扩展,并且尚未显式配置代理地址时,将启用 Kafka Dev Service。更多信息可以在Kafka Dev Services 指南中找到。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
是否已显式启用或禁用 Kafka 的 Dev Services。Dev Services 通常默认启用,除非存在现有配置。对于 Kafka,Dev Services 启动一个代理,除非设置了 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
Kafka 开发服务容器类型。 支持 Redpanda、Strimzi 和 kafka-native 容器提供程序。默认为 redpanda。 对于 Redpanda:请参阅 https://docs.redpanda.com/current/get-started/quick-start/ 和 https://hub.docker.com/r/redpandadata/redpanda 对于 Strimzi:请参阅 https://github.com/strimzi/test-container 和 https://quay.io/repository/strimzi-test-container/test-container 对于 Kafka Native:请参阅 https://github.com/ozangunalp/kafka-native 和 https://quay.io/repository/ogunalp/kafka-native 请注意,Strimzi 和 Kafka Native 镜像以 Kraft 模式启动。 环境变量: 显示更多 |
|
|
要使用的 Kafka 容器镜像。 取决于提供程序。 环境变量: 显示更多 |
字符串 |
|
指示 Quarkus Dev Services 管理的 Kafka 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用该容器,因此不会启动第二个容器。否则,Kafka 的 Dev Services 将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到启动的容器的 当您需要多个共享 Kafka 代理时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
要在 Dev Services Kafka 代理中创建的主题-分区对。启动代理后,将创建给定主题及其分区,跳过已存在的主题。例如, 主题创建不会尝试重新分区具有不同分区数的现有主题。 环境变量: 显示更多 |
Map<String,Integer> |
|
用于主题创建的管理客户端调用的超时。 默认为 2 秒。 环境变量: 显示更多 |
|
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
|
启用事务支持。还会启用生产者幂等性。有关 Redpanda 事务支持的更多信息,请访问 https://vectorized.io/blog/fast-transactions/。请注意,不支持 KIP-447(用于一次语义的生产者可伸缩性) 和 KIP-360(提高幂等/事务性生产者的可靠性)。 环境变量: 显示更多 |
布尔值 |
|
用于访问 Redpanda HTTP 代理 (pandaproxy) 的端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
关于 Duration 格式
要写入 duration 值,请使用标准 您还可以使用简化的格式,以数字开头
在其他情况下,简化格式将被转换为
|
Keycloak
当您的应用程序中存在 quarkus-oidc
扩展,并且尚未显式配置服务器地址时,将启用 Keycloak Dev Service。更多信息可以在OIDC Dev Services 指南中找到。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
用于启用(默认)或禁用开发服务的标志。启用后,Keycloak 的开发服务会在开发或测试模式下自动配置并启动 Keycloak,并且在 Docker 运行时。 环境变量: 显示更多 |
布尔值 |
|
Dev Services 提供程序的容器镜像名称。默认为基于 Quarkus 的 Keycloak 镜像。对于基于 WildFly 的分发,请使用类似 环境变量: 显示更多 |
字符串 |
|
指示是否使用 Keycloak-X 镜像。默认情况下,该镜像由镜像名称中的 环境变量: 显示更多 |
布尔值 |
|
确定 Keycloak 容器是否共享。共享时,Quarkus 使用基于标签的服务发现来查找和重用正在运行的 Keycloak 容器,因此不会启动第二个容器。否则,如果没有找到匹配的容器,则会启动一个新容器。该服务发现使用 环境变量: 显示更多 |
布尔值 |
|
用于标识 Keycloak 容器的 环境变量: 显示更多 |
字符串 |
|
Keycloak 域文件的类或文件系统路径的逗号分隔列表。此列表用于初始化 Keycloak。此列表中的第一个值用于初始化默认租户连接属性。 要了解有关 Keycloak 域文件的更多信息,请参阅 导入和导出 Keycloak 域文档。 环境变量: 显示更多 |
字符串列表 |
|
用于初始化 Keycloak 的其他类或文件系统资源的别名。每个映射条目表示别名与类或文件系统资源路径之间的映射。 环境变量: 显示更多 |
Map<String,String> |
|
用于初始化 Keycloak 的其他类或文件系统资源。每个映射条目表示类或文件系统资源路径别名与 Keycloak 容器位置之间的映射。 环境变量: 显示更多 |
Map<String,String> |
|
传递给 keycloak JVM 的 环境变量: 显示更多 |
字符串 |
|
显示带有 "Keycloak:" 前缀的 Keycloak 日志消息。 环境变量: 显示更多 |
布尔值 |
|
Keycloak 启动命令。使用此属性可以试验 Keycloak 启动选项,请参阅 环境变量: 显示更多 |
字符串 |
|
Keycloak 功能特性。使用此属性可以启用一个或多个实验性的 Keycloak 功能特性。请注意,如果还需要自定义 Keycloak 环境变量: 显示更多 |
字符串列表 |
|
Keycloak 领域的名称。如果 环境变量: 显示更多 |
字符串 |
|
指定在 环境变量: 显示更多 |
布尔值 |
|
指定是否创建默认客户端 ID 环境变量: 显示更多 |
布尔值 |
|
指定即使默认 OIDC 租户已禁用也是否启动容器。在多租户 OIDC 设置中,尤其是动态创建 OIDC 租户时,可能需要将此属性设置为 true。 环境变量: 显示更多 |
布尔值 |
|
一个 Keycloak 用户名到密码的映射。如果为空,将创建默认用户 环境变量: 显示更多 |
Map<String,String> |
|
Keycloak 用户的角色映射。如果为空,则分配默认角色: 环境变量: 显示更多 |
Map<String,List<String>> |
|
dev service 监听的特定端口。 如果未指定,将选择一个随机端口。 环境变量: 显示更多 |
整数 |
|
要传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
|
Keycloak 容器的内存限制,最大可达 如果未指定,默认内存限制为 1250MiB。 环境变量: 显示更多 |
|
|
WebClient 超时。使用此属性来配置 OIDC dev service admin client 使用的 HTTP 客户端在获取管理令牌和创建 realm 时等待来自 OpenId Connect Provider 响应的时间。 环境变量: 显示更多 |
|
关于 Duration 格式
要写入 duration 值,请使用标准 您还可以使用简化的格式,以数字开头
在其他情况下,简化格式将被转换为
|
关于 MemorySize 格式
大小配置选项识别以下格式的字符串(显示为正则表达式): 如果未给出后缀,则假定为字节。 |
Kubernetes
当应用程序中存在 kubernetes-client
扩展,并且尚未显式配置 API 服务器地址时,将启用 Kubernetes 开发服务。更多信息请参见 Kubernetes 开发服务指南。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
是否应使用 Kubernetes 的开发服务。(默认为 true)如果为 true 并且未配置 Kubernetes 客户端,则将启动并使用 Kubernetes 集群。 环境变量: 显示更多 |
布尔值 |
|
要使用的 Kubernetes API 服务器版本。如果未设置,Kubernetes 的开发服务将使用给定风格的最新支持版本。请参阅 https://github.com/dajudge/kindcontainer/blob/master/k8s-versions.json 环境变量: 显示更多 |
字符串 |
|
要使用的风格(kind、k3s 或 api-only)。如果未设置,Kubernetes 的开发服务将设置为:api-only。 环境变量: 显示更多 |
|
|
默认情况下,如果找到 kubeconfig,Kubernetes 的开发服务将不会启动。将此设置为 true 可覆盖 kubeconfig 配置。 环境变量: 显示更多 |
布尔值 |
|
指示由 Quarkus 开发服务管理的 Kubernetes 集群是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,Kubernetes 的开发服务将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到已启动容器的 当您需要多个共享 Kubernetes 集群时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
MongoDB
当应用程序中存在 quarkus-mongodb-client
扩展,并且尚未显式配置服务器地址时,将启用 MongoDB 开发服务。更多信息请参见 MongoDB 指南。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。 启用 DevServices 后,Quarkus 将尝试在开发或测试模式下运行时自动配置和启动数据库。 环境变量: 显示更多 |
布尔值 |
|
用于基于容器的 DevServices 提供程序的容器镜像名称。 环境变量: 显示更多 |
字符串 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
添加到连接 URL 的通用属性。 环境变量: 显示更多 |
Map<String,String> |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
|
指示由 Quarkus 开发服务管理的 MongoDB 服务器是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,MongoDB 的开发服务将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到已启动容器的 环境变量: 显示更多 |
字符串 |
|
RabbitMQ
当应用程序中存在 quarkus-messaging-rabbitmq
扩展,并且尚未显式配置代理地址时,将启用 RabbitMQ 开发服务。更多信息请参见 RabbitMQ 开发服务指南。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
是否已显式启用或禁用 RabbitMQ 的开发服务。通常默认启用开发服务,除非存在现有配置。对于 RabbitMQ,除非设置了 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
RabbitMQ 管理插件的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
要使用的镜像。请注意,仅支持官方 RabbitMQ 镜像。具体来说,镜像仓库必须以 环境变量: 显示更多 |
字符串 |
|
指示由 Quarkus 开发服务管理的 RabbitMQ 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,RabbitMQ 的开发服务将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到已启动容器的 当您需要多个共享 RabbitMQ 代理时,使用此属性。 环境变量: 显示更多 |
字符串 |
|
交换机的类型:direct、topic、headers、fanout 等。 环境变量: 显示更多 |
字符串 |
|
当所有队列都完成使用交换机时,是否应删除交换机? 环境变量: 显示更多 |
布尔值 |
|
交换机在重启后是否应保留? 环境变量: 显示更多 |
布尔值 |
|
交换机应与哪个虚拟主机关联? 环境变量: 显示更多 |
字符串 |
|
交换机定义的额外参数。 环境变量: 显示更多 |
Map<String,String> |
|
当所有消费者都完成使用队列时,是否应删除队列? 环境变量: 显示更多 |
布尔值 |
|
队列在重启后是否应保留? 环境变量: 显示更多 |
布尔值 |
|
队列应与哪个虚拟主机关联? 环境变量: 显示更多 |
字符串 |
|
队列定义的额外参数。 环境变量: 显示更多 |
Map<String,String> |
|
要绑定的源交换机。默认为绑定实例的名称。 环境变量: 显示更多 |
字符串 |
|
源交换机的路由键规范。 环境变量: 显示更多 |
字符串 |
|
要绑定的目标交换机或队列。默认为绑定实例的名称。 环境变量: 显示更多 |
字符串 |
|
绑定的目标类型:queue、exchange 等。 环境变量: 显示更多 |
字符串 |
|
绑定应与哪个虚拟主机关联? 环境变量: 显示更多 |
字符串 |
|
绑定定义的额外参数。 环境变量: 显示更多 |
Map<String,String> |
|
启动 RabbitMQ 代理后应预定义的虚拟主机。 环境变量: 显示更多 |
字符串列表 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
Pulsar
当应用程序中存在 quarkus-messaging-pulsar
扩展,并且尚未显式配置代理地址时,将启用 Pulsar 开发服务。更多信息请参见 Pulsar 开发服务指南。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
是否已显式启用或禁用 Pulsar 的开发服务。通常默认启用开发服务,除非存在现有配置。对于 Pulsar,除非设置了 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
要使用的镜像。请注意,仅支持 Apache Pulsar 镜像。具体来说,镜像仓库必须以 环境变量: 显示更多 |
字符串 |
|
指示由 Quarkus 开发服务管理的 Pulsar 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,Pulsar 的开发服务将启动一个新容器。 该发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到已启动容器的 当您需要多个共享 Pulsar 代理时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
要在 Pulsar 实例上设置的代理配置 环境变量: 显示更多 |
Map<String,String> |
Redis
当应用程序中存在 quarkus-redis-client
扩展,并且尚未显式配置服务器地址时,将启用 Redis 开发服务。更多信息请参见 Redis 开发服务指南。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。 当启用开发服务时,Quarkus 将尝试在开发或测试模式下运行并且 Docker 正在运行时自动配置和启动数据库。 环境变量: 显示更多 |
布尔值 |
|
用于基于容器的 DevServices 提供程序的容器镜像名称。 如果要使用 Redis Stack 模块(bloom、graph、search…),请使用: 环境变量: 显示更多 |
字符串 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
指示由 Quarkus 开发服务管理的 Redis 服务器是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,Redis 的开发服务将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到已启动容器的 当您需要多个共享 Redis 服务器时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
Vault
当应用程序中存在 quarkus-vault
扩展,并且尚未显式配置服务器地址时,将启用 Vault 开发服务。更多信息请参见 Vault 指南。
Infinispan
当应用程序中存在 quarkus-infinispan-client
扩展,并且尚未显式配置服务器地址时,将启用 Infinispan 开发服务。更多信息请参见 Infinispan 开发服务指南。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。 当启用开发服务时,Quarkus 将尝试在开发或测试模式下运行并且 Docker 正在运行时自动配置和启动数据库。 环境变量: 显示更多 |
布尔值 |
|
当配置为空时,会自动创建一个 Infinispan 默认客户端以连接到正在运行的开发服务。 但是,在某些情况下,创建此客户端是不必要的,但我们仍然需要启动 Infinispan Server。 在这种情况下,此属性用于确定扩展是否应默认创建客户端。 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
指示 Quarkus Dev Services 管理的 Infinispan 服务器是否共享。 共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则使用它,因此不会启动第二个容器。 否则,Infinispan 的 Dev Services 会启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到启动容器的 当您需要多个共享 Infinispan 服务器时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
要使用的镜像。请注意,仅支持官方 Infinispan 镜像。 环境变量: 显示更多 |
字符串 |
|
要自动下载并添加到 Infinispan 服务器库的项目列表。 例如 Maven 坐标 (org.postgresql:postgresql:42.3.1) 或依赖项位置 URL。 如果传递了无效值,则 Infinispan 服务器在尝试启动时将抛出错误。 环境变量: 显示更多 |
字符串列表 |
|
添加站点名称以启动启用跨站点复制的 Infinispan Server 容器(例如 lon)。 跨站点复制是一种连接两个独立的 Infinispan Server 集群的功能,这两个集群可能在不同的数据中心中运行,并配置备份缓存以使用主动-主动或主动-被动复制跨集群复制数据。 有关 Infinispan 文档中跨站点复制的更多信息,请参见 https://infinispan.org/docs/stable/titles/xsite/xsite.html 配置 环境变量: 显示更多 |
字符串 |
|
如果您已经在 docker 中运行 Infinispan Server,如果容器使用相同的 mcastPort,它们将形成一个集群。 设置不同的 mcastPort 以在 Docker 中创建一个单独的集群(例如 46656)。 本地 Docker 开发模式中的常见用例是需要启用跨站点复制的两个不同的 Infinispan 集群。 请参见 https://github.com/infinispan/infinispan-simple-tutorials/blob/main/infinispan-remote/cross-site-replication/docker-compose/ 环境变量: 显示更多 |
整数 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
|
要传递给容器的 Infinispan 服务器配置块。 环境变量: 显示更多 |
字符串列表 |
Elasticsearch
当应用程序中存在基于 Elasticsearch 的扩展程序(Elasticsearch 客户端或 Hibernate Search ORM Elasticsearch),并且尚未显式配置服务器地址时,将启用 Elasticsearch Dev Service。 可以在 Elasticsearch Dev Services 指南中找到更多信息。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
||
---|---|---|---|---|
此开发服务是否应在开发模式或测试中随应用程序一起启动。 除非显式设置连接配置(例如, 环境变量: 显示更多 |
布尔值 |
|||
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|||
要使用的 Elasticsearch 发行版。 默认为从显式配置的 环境变量: 显示更多 |
|
|||
要使用的 Elasticsearch 容器映像。 默认值取决于配置的
环境变量: 显示更多 |
字符串 |
|||
ES_JAVA_OPTS 环境变量的值。 环境变量: 显示更多 |
字符串 |
|
||
Quarkus 开发服务管理的 Elasticsearch 服务器是否共享。 共享时,Quarkus 会使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则会使用该容器,因此不会启动第二个容器。 否则,Elasticsearch 的开发服务将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
||
附加到启动的容器的 当 当您需要多个共享 Elasticsearch 服务器时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
||
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |
|||
是否在开发模式会话或测试套件执行之后保持开发服务容器运行,以便在下一个开发模式会话或测试套件执行中重用它们。 在开发模式会话或测试套件执行中,只要其配置(用户名、密码、环境、端口绑定等)没有更改,Quarkus 将始终重用 Dev Services。此功能专门用于在 Quarkus 未运行时保持容器运行,以便在多次运行中重用它们。
此配置属性默认设置为 环境变量: 显示更多 |
布尔值 |
|
可观察性
当应用程序中存在 quarkus-observability-devservices
扩展程序,并且类路径上至少有一个开发资源时,将启用 Observability Dev Services。 可以在 Observability Dev Services 指南中找到更多信息。
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
类型 |
默认 |
|
开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。 启用 DevServices 时,Quarkus 将尝试在开发或测试模式下运行且 Docker 运行时自动配置并启动容器。 环境变量: 显示更多 |
布尔值 |
|
指示 Quarkus Dev Services 管理的容器是否共享。 共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则使用它,因此不会启动第二个容器。 否则,Dev Services 会启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到启动容器的 环境变量: 显示更多 |
字符串 |
|
字符串 |
|
|
字符串 |
|
|
Grafana 容器的端口。 环境变量: 显示更多 |
整数 |
|
|
||
Grafana LGTM Docker 镜像的名称。 环境变量: 显示更多 |
字符串 |
|
Docker 网络别名。 环境变量: 显示更多 |
字符串列表 |
|
字符串 |
|
|
要记录的组件集。 要输出其容器日志的组件的逗号分隔集。 环境变量: 显示更多 |
|
|
LGTM 的 OTLP 协议。 环境变量: 显示更多 |
字符串 |
|
(Prometheus)抓取间隔,以秒为单位。 环境变量: 显示更多 |
整数 |
|
我们是否强制抓取。 环境变量: 显示更多 |
布尔值 |
|
开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。 启用 DevServices 时,Quarkus 将尝试在开发或测试模式下运行且 Docker 运行时自动配置并启动容器。 环境变量: 显示更多 |
布尔值 |
|
启用简化版的开发资源使用,而不是完整的可观察性处理。 确保 @code{enabled} 设置为 false。 环境变量: 显示更多 |
布尔值 |
|
布尔值 |
|
关于 Duration 格式
要写入 duration 值,请使用标准 您还可以使用简化的格式,以数字开头
在其他情况下,简化格式将被转换为
|
Quarkus 平台之外的开发服务
许多不在 Quarkus 平台中的 Quarkiverse 扩展也提供开发服务。
以下是一些亮点。
Neo4j
当应用程序中存在 quarkus-neo4j
扩展程序,并且尚未显式配置服务器地址时,将启用 Neo4j Dev Service。 可以在 Neo4j 指南中找到更多信息。
WireMock
WireMock 扩展程序将 WireMock 作为开发服务启动。 这是一个以测试为中心的扩展程序,旨在仅在开发和测试模式下运行。 可以在 WireMock 指南中找到更多信息。
Microcks
Microcks Quarkus 扩展程序包含 Microcks Dev Service。 Dev Service 管理依赖项的模拟,并对您的 API 端点进行契约测试。 有关更多信息,请参见扩展程序 README.md。