编辑此页面

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 启动一个代理,除非设置了 amqp-hostamqp-port,或者所有 Reactive Messaging AMQP 通道都配置了 hostport

环境变量:QUARKUS_AMQP_DEVSERVICES_ENABLED

显示更多

布尔值

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_AMQP_DEVSERVICES_PORT

显示更多

整数

要使用的镜像。请注意,仅支持 ActiveMQ Artemis 镜像。具体来说,镜像存储库必须以 artemiscloud/activemq-artemis-broker 结尾。

请查看 Quay 页面上的 activemq-artemis-broker 以查找可用版本。

环境变量:QUARKUS_AMQP_DEVSERVICES_IMAGE_NAME

显示更多

字符串

quay.io/artemiscloud/activemq-artemis-broker:1.0.25

要传递给容器的 AMQ_EXTRA_ARGS 环境变量的值。对于 ActiveMQ Artemis Broker ⇐ 1.0.21,请将此属性设置为 --no-autotune --mapped --no-fsync --relax-jolokia --http-host 0.0.0.0

环境变量:QUARKUS_AMQP_DEVSERVICES_EXTRA_ARGS

显示更多

字符串

--no-autotune --mapped --no-fsync --relax-jolokia

指示 Quarkus Dev Services 管理的 AMQP 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用该容器,因此不会启动第二个容器。否则,AMQP 的 Dev Services 将启动一个新容器。

发现使用 quarkus-dev-service-amqp 标签。该值使用 service-name 属性配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_AMQP_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到启动的容器的 quarkus-dev-service-aqmp 标签的值。当 shared 设置为 true 时,将使用此属性。在这种情况下,在启动容器之前,AMQP 的 Dev Services 会查找 quarkus-dev-service-amqp 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-amqp 标签设置为指定的值。

当您需要多个共享 AMQP 代理时,会使用此属性。

环境变量:QUARKUS_AMQP_DEVSERVICES_SERVICE_NAME

显示更多

字符串

amqp

传递给容器的环境变量。

环境变量:QUARKUS_AMQP_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

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 启动一个注册表,除非设置了 mp.messaging.connector.smallrye-kafka.apicurio.registry.urlmp.messaging.connector.smallrye-kafka.schema.registry.url

环境变量:QUARKUS_APICURIO_REGISTRY_DEVSERVICES_ENABLED

显示更多

布尔值

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_APICURIO_REGISTRY_DEVSERVICES_PORT

显示更多

整数

要使用的 Apicurio Registry 镜像。请注意,仅支持 Apicurio Registry 2.x 镜像。具体来说,镜像存储库必须以 apicurio/apicurio-registry-mem 结尾。

环境变量:QUARKUS_APICURIO_REGISTRY_DEVSERVICES_IMAGE_NAME

显示更多

字符串

quay.io/apicurio/apicurio-registry-mem:2.4.2.Final

指示 Quarkus Dev Services 管理的 Apicurio Registry 实例是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用该容器,因此不会启动第二个容器。否则,Apicurio Registry 的 Dev Services 将启动一个新容器。

该发现使用 quarkus-dev-service-apicurio-registry 标签。该值使用 service-name 属性配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_APICURIO_REGISTRY_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到启动的容器的 quarkus-dev-service-apicurio-registry 标签的值。当 shared 设置为 true 时,将使用此属性。在这种情况下,在启动容器之前,Apicurio Registry 的 Dev Services 会查找 quarkus-dev-service-apicurio-registry 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-apicurio-registry 标签设置为指定的值。

当您需要多个共享 Apicurio Registry 实例时,将使用此属性。

环境变量:QUARKUS_APICURIO_REGISTRY_DEVSERVICES_SERVICE_NAME

显示更多

字符串

apicurio-registry

传递给容器的环境变量。

环境变量:QUARKUS_APICURIO_REGISTRY_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

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 将不会在运行之间重置数据库的状态,除非您显式地配置它。

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

quarkus.datasource."数据源名称".devservices.enabled

此开发服务是否应在开发模式或测试中随应用程序一起启动。

默认情况下启用 Dev Service,除非显式设置连接配置(例如 JDBC URL 或反应式客户端 URL)。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_ENABLED

显示更多

布尔值

quarkus.datasource."数据源名称".devservices.image-name

基于容器的 Dev Service 提供程序的容器映像名称。

如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_IMAGE_NAME

显示更多

字符串

quarkus.datasource."数据源名称".devservices.container-env."环境变量名"

传递给容器的环境变量。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

quarkus.datasource."数据源名称".devservices.container-properties."属性键"

传递用于其他容器配置的通用属性。

此处定义的属性是特定于数据库的,并且在每个数据库 dev service 实现中进行专门解释。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_CONTAINER_PROPERTIES__PROPERTY_KEY_

显示更多

Map<String,String>

quarkus.datasource."数据源名称".devservices.properties."属性键"

添加到数据库连接 URL 的通用属性。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_PROPERTIES__PROPERTY_KEY_

显示更多

Map<String,String>

quarkus.datasource."数据源名称".devservices.port

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_PORT

显示更多

整数

quarkus.datasource."数据源名称".devservices.command

用于基于容器的 Dev Service 提供程序的容器启动命令。

如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_COMMAND

显示更多

字符串

quarkus.datasource."数据源名称".devservices.db-name

如果此 Dev Service 支持覆盖数据库名称,则要使用的数据库名称。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_DB_NAME

显示更多

字符串

quarkus.datasource."数据源名称".devservices.username

如果此 Dev Service 支持覆盖用户名,则要使用的用户名。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_USERNAME

显示更多

字符串

quarkus.datasource."数据源名称".devservices.password

如果此 Dev Service 支持覆盖密码,则要使用的密码。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_PASSWORD

显示更多

字符串

quarkus.datasource."数据源名称".devservices.init-script-path

要从类路径加载并应用于 Dev Service 数据库的 SQL 脚本的路径。

如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_INIT_SCRIPT_PATH

显示更多

字符串列表

quarkus.datasource."数据源名称".devservices.init-privileged-script-path

要从类路径加载并应用于使用 SYS 特权用户的 Dev Service 数据库的 SQL 脚本的路径。并非所有数据库都提供特权用户。在这些情况下,将忽略该属性。如果提供程序不是基于容器的数据库(如 H2 或 Derby),则此属性无效。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_INIT_PRIVILEGED_SCRIPT_PATH

显示更多

字符串列表

quarkus.datasource."数据源名称".devservices.volumes."主机路径"

要映射到容器的卷。

映射键对应于主机位置;映射值是容器位置。如果主机位置以“classpath:”开头,则映射将以只读权限从类路径加载资源。

使用文件系统位置时,将以读写权限生成卷,这可能会导致文件系统中的数据丢失或修改。

如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_VOLUMES__HOST_PATH_

显示更多

Map<String,String>

quarkus.datasource."数据源名称".devservices.reuse

是否在开发模式会话或测试套件执行之后保持开发服务容器运行,以便在下一个开发模式会话或测试套件执行中重用它们。

在开发模式会话或测试套件执行中,只要其配置(用户名、密码、环境、端口绑定等)没有更改,Quarkus 将始终重用 Dev Services。此功能专门用于在 Quarkus 未运行时保持容器运行,以便在多次运行中重用它们。

此功能需要在 testcontainers.properties 中显式启用,可能需要更改您在开发模式和测试中配置数据初始化的方式,并且可能会使容器无限期地运行,从而迫使您手动停止和删除它们。有关更多信息,请参阅文档的此部分

此配置属性默认设置为 true,因此主要用于禁用重用,如果您在 testcontainers.properties 中启用了重用,但只想将其用于某些 Quarkus 应用程序或数据源。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_REUSE

显示更多

布尔值

true

quarkus.datasource."datasource-name".devservices.show-logs

日志是否应由 JBoss 记录器使用。

如果提供程序不是基于容器的数据库,例如 H2 或 Derby,则这不起作用。

环境变量:QUARKUS_DATASOURCE_DEVSERVICES_SHOW_LOGS

显示更多

布尔值

false

Kafka

当您的应用程序中存在 quarkus-kafka-client 扩展,并且尚未显式配置代理地址时,将启用 Kafka Dev Service。更多信息可以在Kafka Dev Services 指南中找到。

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

是否已显式启用或禁用 Kafka 的 Dev Services。Dev Services 通常默认启用,除非存在现有配置。对于 Kafka,Dev Services 启动一个代理,除非设置了 kafka.bootstrap.servers,或者所有 Reactive Messaging Kafka 通道都配置了 bootstrap.servers

环境变量:QUARKUS_KAFKA_DEVSERVICES_ENABLED

显示更多

布尔值

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_KAFKA_DEVSERVICES_PORT

显示更多

整数

Kafka 开发服务容器类型。

支持 Redpanda、Strimzi 和 kafka-native 容器提供程序。默认为 redpanda。

请注意,Strimzi 和 Kafka Native 镜像以 Kraft 模式启动。

环境变量:QUARKUS_KAFKA_DEVSERVICES_PROVIDER

显示更多

redpandastrimzikafka-native

redpanda

要使用的 Kafka 容器镜像。

取决于提供程序。

环境变量:QUARKUS_KAFKA_DEVSERVICES_IMAGE_NAME

显示更多

字符串

指示 Quarkus Dev Services 管理的 Kafka 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用该容器,因此不会启动第二个容器。否则,Kafka 的 Dev Services 将启动一个新容器。

发现使用 quarkus-dev-service-kafka 标签。该值使用 service-name 属性配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_KAFKA_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到启动的容器的 quarkus-dev-service-kafka 标签的值。当 shared 设置为 true 时,将使用此属性。在这种情况下,在启动容器之前,Kafka 的 Dev Services 会查找 quarkus-dev-service-kafka 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-kafka 标签设置为指定的值。

当您需要多个共享 Kafka 代理时,将使用此属性。

环境变量:QUARKUS_KAFKA_DEVSERVICES_SERVICE_NAME

显示更多

字符串

kafka

要在 Dev Services Kafka 代理中创建的主题-分区对。启动代理后,将创建给定主题及其分区,跳过已存在的主题。例如,quarkus.kafka.devservices.topic-partitions.test=2 将创建一个名为 test 的主题,其中包含 2 个分区。

主题创建不会尝试重新分区具有不同分区数的现有主题。

环境变量:QUARKUS_KAFKA_DEVSERVICES_TOPIC_PARTITIONS__TOPIC_NAME_

显示更多

Map<String,Integer>

用于主题创建的管理客户端调用的超时。

默认为 2 秒。

环境变量:QUARKUS_KAFKA_DEVSERVICES_TOPIC_PARTITIONS_TIMEOUT

显示更多

Duration 

2S

传递给容器的环境变量。

环境变量:QUARKUS_KAFKA_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

启用事务支持。还会启用生产者幂等性。有关 Redpanda 事务支持的更多信息,请访问 https://vectorized.io/blog/fast-transactions/。请注意,支持 KIP-447(用于一次语义的生产者可伸缩性)KIP-360(提高幂等/事务性生产者的可靠性)

环境变量:QUARKUS_KAFKA_DEVSERVICES_REDPANDA_TRANSACTION_ENABLED

显示更多

布尔值

true

用于访问 Redpanda HTTP 代理 (pandaproxy) 的端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_KAFKA_DEVSERVICES_REDPANDA_PROXY_PORT

显示更多

整数

关于 Duration 格式

要写入 duration 值,请使用标准 java.time.Duration 格式。有关更多信息,请参阅 Duration#parse() Java API 文档

您还可以使用简化的格式,以数字开头

  • 如果该值仅为一个数字,则表示以秒为单位的时间。

  • 如果该值是一个数字后跟 ms,则表示以毫秒为单位的时间。

在其他情况下,简化格式将被转换为 java.time.Duration 格式以进行解析

  • 如果该值是一个数字后跟 hms,则在其前面加上 PT

  • 如果该值是一个数字后跟 d,则在其前面加上 P

Keycloak

当您的应用程序中存在 quarkus-oidc 扩展,并且尚未显式配置服务器地址时,将启用 Keycloak Dev Service。更多信息可以在OIDC Dev Services 指南中找到。

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

用于启用(默认)或禁用开发服务的标志。启用后,Keycloak 的开发服务会在开发或测试模式下自动配置并启动 Keycloak,并且在 Docker 运行时。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_ENABLED

显示更多

布尔值

true

Dev Services 提供程序的容器镜像名称。默认为基于 Quarkus 的 Keycloak 镜像。对于基于 WildFly 的分发,请使用类似 quay.io/keycloak/keycloak:19.0.3-legacy 的镜像。Keycloak Quarkus 和 WildFly 镜像的初始化方式不同。除非镜像版本以 -legacy 结尾,否则 Keycloak 的 Dev Services 将假定它是 Keycloak Quarkus 镜像。使用 quarkus.keycloak.devservices.keycloak-x-image 覆盖。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_IMAGE_NAME

显示更多

字符串

quay.io/keycloak/keycloak:26.2.4

指示是否使用 Keycloak-X 镜像。默认情况下,该镜像由镜像名称中的 keycloak-x 标识。对于自定义镜像,请使用 quarkus.keycloak.devservices.keycloak-x-image 覆盖。如果默认检查有效,则无需设置此属性。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_KEYCLOAK_X_IMAGE

显示更多

布尔值

确定 Keycloak 容器是否共享。共享时,Quarkus 使用基于标签的服务发现来查找和重用正在运行的 Keycloak 容器,因此不会启动第二个容器。否则,如果没有找到匹配的容器,则会启动一个新容器。该服务发现使用 quarkus-dev-service-label 标签,其值由 service-name 属性设置。容器共享仅在开发模式下可用。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_SHARED

显示更多

布尔值

true

用于标识 Keycloak 容器的 quarkus-dev-service-keycloak 标签的值。在共享模式下用于查找具有此标签的现有容器。如果未找到,则使用此标签初始化一个新容器。仅在开发模式下适用。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_SERVICE_NAME

显示更多

字符串

keycloak

Keycloak 域文件的类或文件系统路径的逗号分隔列表。此列表用于初始化 Keycloak。此列表中的第一个值用于初始化默认租户连接属性。

要了解有关 Keycloak 域文件的更多信息,请参阅 导入和导出 Keycloak 域文档

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_REALM_PATH

显示更多

字符串列表

用于初始化 Keycloak 的其他类或文件系统资源的别名。每个映射条目表示别名与类或文件系统资源路径之间的映射。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_RESOURCE_ALIASES__ALIAS_NAME_

显示更多

Map<String,String>

用于初始化 Keycloak 的其他类或文件系统资源。每个映射条目表示类或文件系统资源路径别名与 Keycloak 容器位置之间的映射。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_RESOURCE_MAPPINGS__RESOURCE_NAME_

显示更多

Map<String,String>

传递给 keycloak JVM 的 JAVA_OPTS

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_JAVA_OPTS

显示更多

字符串

显示带有 "Keycloak:" 前缀的 Keycloak 日志消息。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_SHOW_LOGS

显示更多

布尔值

false

Keycloak 启动命令。使用此属性可以试验 Keycloak 启动选项,请参阅 https://keycloak.com.cn/server/all-config。请注意,加载旧版 Keycloak WildFly 镜像时,此属性将被忽略。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_START_COMMAND

显示更多

字符串

Keycloak 功能特性。使用此属性可以启用一个或多个实验性的 Keycloak 功能特性。请注意,如果还需要自定义 Keycloak start-command(),则可以使用 --features 选项作为启动命令序列的一部分,而不是配置此属性。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_FEATURES

显示更多

字符串列表

Keycloak 领域的名称。如果 realm-path 属性指向的领域文件不存在,则使用此属性创建领域。在这种情况下,默认值为 quarkus。建议始终设置此属性,以便 Keycloak 的开发服务可以识别领域名称,而无需解析领域文件。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_REALM_NAME

显示更多

字符串

指定在 realm-path 未找到领域文件时是否创建 Keycloak 领域。如果使用 Keycloak 管理控制台或 io.quarkus.test.common.QuarkusTestResourceLifecycleManager 提供的 Keycloak Admin API 创建领域,则设置为 false

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_CREATE_REALM

显示更多

布尔值

true

指定是否创建默认客户端 ID quarkus-app,并使用密钥 secret 注册它们(如果 create-realm 属性设置为 true)。对于 OIDC 扩展配置属性,将配置 quarkus.oidc.client.idquarkus.oidc.credentials.secret。对于 OIDC Client 扩展配置属性,将配置 quarkus.oidc-client.client.idquarkus.oidc-client.credentials.secret。如果客户端必须使用 Keycloak 管理控制台或 io.quarkus.test.common.QuarkusTestResourceLifecycleManager 提供的 Keycloak Admin API 创建,或者动态注册,则设置为 false

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_CREATE_CLIENT

显示更多

布尔值

true

指定即使默认 OIDC 租户已禁用也是否启动容器。在多租户 OIDC 设置中,尤其是动态创建 OIDC 租户时,可能需要将此属性设置为 true。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_START_WITH_DISABLED_TENANT

显示更多

布尔值

false

一个 Keycloak 用户名到密码的映射。如果为空,将创建默认用户 alicebob,密码与用户名相同。当在 realm-path 未找到 realm 文件时,将使用此映射创建用户。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_USERS__USERS_

显示更多

Map<String,String>

Keycloak 用户的角色映射。如果为空,则分配默认角色:alice 接收 adminuser 角色,而其他用户接收 user 角色。当在 realm-path 未找到领域文件时,此映射用于角色创建。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_ROLES__ROLE_NAME_

显示更多

Map<String,List<String>>

dev service 监听的特定端口。

如果未指定,将选择一个随机端口。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_PORT

显示更多

整数

要传递给容器的环境变量。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

Keycloak 容器的内存限制,最大可达 Long.MAX_VALUE 字节。

如果未指定,默认内存限制为 1250MiB。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_CONTAINER_MEMORY_LIMIT

显示更多

MemorySize 

1250M

WebClient 超时。使用此属性来配置 OIDC dev service admin client 使用的 HTTP 客户端在获取管理令牌和创建 realm 时等待来自 OpenId Connect Provider 响应的时间。

环境变量:QUARKUS_KEYCLOAK_DEVSERVICES_WEB_CLIENT_TIMEOUT

显示更多

Duration 

4S

关于 Duration 格式

要写入 duration 值,请使用标准 java.time.Duration 格式。有关更多信息,请参阅 Duration#parse() Java API 文档

您还可以使用简化的格式,以数字开头

  • 如果该值仅为一个数字,则表示以秒为单位的时间。

  • 如果该值是一个数字后跟 ms,则表示以毫秒为单位的时间。

在其他情况下,简化格式将被转换为 java.time.Duration 格式以进行解析

  • 如果该值是一个数字后跟 hms,则在其前面加上 PT

  • 如果该值是一个数字后跟 d,则在其前面加上 P

关于 MemorySize 格式

大小配置选项识别以下格式的字符串(显示为正则表达式):[0-9]+[KkMmGgTtPpEeZzYy]?

如果未给出后缀,则假定为字节。

Kubernetes

当应用程序中存在 kubernetes-client 扩展,并且尚未显式配置 API 服务器地址时,将启用 Kubernetes 开发服务。更多信息请参见 Kubernetes 开发服务指南

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

是否应使用 Kubernetes 的开发服务。(默认为 true)如果为 true 并且未配置 Kubernetes 客户端,则将启动并使用 Kubernetes 集群。

环境变量:QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_ENABLED

显示更多

布尔值

true

要使用的 Kubernetes API 服务器版本。如果未设置,Kubernetes 的开发服务将使用给定风格的最新支持版本。请参阅 https://github.com/dajudge/kindcontainer/blob/master/k8s-versions.json

环境变量:QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_API_VERSION

显示更多

字符串

要使用的风格(kind、k3s 或 api-only)。如果未设置,Kubernetes 的开发服务将设置为:api-only。

环境变量:QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_FLAVOR

显示更多

kindkind(需要特权 docker), k3sk3s(需要特权 docker), api-only仅 API

默认情况下,如果找到 kubeconfig,Kubernetes 的开发服务将不会启动。将此设置为 true 可覆盖 kubeconfig 配置。

环境变量:QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_OVERRIDE_KUBECONFIG

显示更多

布尔值

false

指示由 Quarkus 开发服务管理的 Kubernetes 集群是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,Kubernetes 的开发服务将启动一个新容器。

发现使用 quarkus-dev-service-kubernetes 标签。该值使用 service-name 属性配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到已启动容器的 quarkus-dev-service-kubernetes 标签的值。当 shared 设置为 true 时,使用此属性。在这种情况下,在启动容器之前,Kubernetes 的开发服务会查找 quarkus-dev-service-kubernetes 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-kubernetes 标签设置为指定的值。

当您需要多个共享 Kubernetes 集群时,将使用此属性。

环境变量:QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_SERVICE_NAME

显示更多

字符串

kubernetes

传递给容器的环境变量。

环境变量:QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

MongoDB

当应用程序中存在 quarkus-mongodb-client 扩展,并且尚未显式配置服务器地址时,将启用 MongoDB 开发服务。更多信息请参见 MongoDB 指南

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。

启用 DevServices 后,Quarkus 将尝试在开发或测试模式下运行时自动配置和启动数据库。

环境变量:QUARKUS_MONGODB_DEVSERVICES_ENABLED

显示更多

布尔值

用于基于容器的 DevServices 提供程序的容器镜像名称。

环境变量:QUARKUS_MONGODB_DEVSERVICES_IMAGE_NAME

显示更多

字符串

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_MONGODB_DEVSERVICES_PORT

显示更多

整数

添加到连接 URL 的通用属性。

环境变量:QUARKUS_MONGODB_DEVSERVICES_PROPERTIES__PROPERTY_KEY_

显示更多

Map<String,String>

传递给容器的环境变量。

环境变量:QUARKUS_MONGODB_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

指示由 Quarkus 开发服务管理的 MongoDB 服务器是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,MongoDB 的开发服务将启动一个新容器。

发现使用 quarkus-dev-service-mongodb 标签。该值使用 service-name 属性进行配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_MONGODB_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到已启动容器的 quarkus-dev-service-mongodb 标签的值。当 shared 设置为 true 时,使用此属性。在这种情况下,在启动容器之前,MongoDB 的开发服务会查找 quarkus-dev-service-mongodb 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-mongodb 标签设置为指定的值。

环境变量:QUARKUS_MONGODB_DEVSERVICES_SERVICE_NAME

显示更多

字符串

mongodb

RabbitMQ

当应用程序中存在 quarkus-messaging-rabbitmq 扩展,并且尚未显式配置代理地址时,将启用 RabbitMQ 开发服务。更多信息请参见 RabbitMQ 开发服务指南

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

是否已显式启用或禁用 RabbitMQ 的开发服务。通常默认启用开发服务,除非存在现有配置。对于 RabbitMQ,除非设置了 rabbitmq-hostrabbitmq-port,或者所有 Reactive Messaging RabbitMQ 通道都配置了 hostport,否则开发服务会启动代理。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_ENABLED

显示更多

布尔值

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_PORT

显示更多

整数

RabbitMQ 管理插件的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_HTTP_PORT

显示更多

整数

要使用的镜像。请注意,仅支持官方 RabbitMQ 镜像。具体来说,镜像仓库必须以 rabbitmq 结尾。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_IMAGE_NAME

显示更多

字符串

rabbitmq:3.12-management

指示由 Quarkus 开发服务管理的 RabbitMQ 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,RabbitMQ 的开发服务将启动一个新容器。

发现使用 quarkus-dev-service-rabbitmq 标签。该值使用 service-name 属性进行配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到已启动容器的 quarkus-dev-service-rabbitmq 标签的值。当 shared 设置为 true 时,使用此属性。在这种情况下,在启动容器之前,RabbitMQ 的开发服务会查找 quarkus-dev-service-rabbitmq 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-rabbitmq 标签设置为指定的值。

当您需要多个共享 RabbitMQ 代理时,使用此属性。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_SERVICE_NAME

显示更多

字符串

rabbitmq

交换机的类型:direct、topic、headers、fanout 等。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_EXCHANGES__EXCHANGE_NAME__TYPE

显示更多

字符串

direct

当所有队列都完成使用交换机时,是否应删除交换机?

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_EXCHANGES__EXCHANGE_NAME__AUTO_DELETE

显示更多

布尔值

false

交换机在重启后是否应保留?

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_EXCHANGES__EXCHANGE_NAME__DURABLE

显示更多

布尔值

false

交换机应与哪个虚拟主机关联?

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_EXCHANGES__EXCHANGE_NAME__VHOST

显示更多

字符串

/

交换机定义的额外参数。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_EXCHANGES__EXCHANGE_NAME__ARGUMENTS__ARGUMENT_NAME_

显示更多

Map<String,String>

当所有消费者都完成使用队列时,是否应删除队列?

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_QUEUES__QUEUE_NAME__AUTO_DELETE

显示更多

布尔值

false

队列在重启后是否应保留?

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_QUEUES__QUEUE_NAME__DURABLE

显示更多

布尔值

false

队列应与哪个虚拟主机关联?

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_QUEUES__QUEUE_NAME__VHOST

显示更多

字符串

/

队列定义的额外参数。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_QUEUES__QUEUE_NAME__ARGUMENTS__ARGUMENT_NAME_

显示更多

Map<String,String>

要绑定的源交换机。默认为绑定实例的名称。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_BINDINGS__BINDING_NAME__SOURCE

显示更多

字符串

源交换机的路由键规范。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_BINDINGS__BINDING_NAME__ROUTING_KEY

显示更多

字符串

#

要绑定的目标交换机或队列。默认为绑定实例的名称。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_BINDINGS__BINDING_NAME__DESTINATION

显示更多

字符串

绑定的目标类型:queue、exchange 等。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_BINDINGS__BINDING_NAME__DESTINATION_TYPE

显示更多

字符串

queue

绑定应与哪个虚拟主机关联?

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_BINDINGS__BINDING_NAME__VHOST

显示更多

字符串

/

绑定定义的额外参数。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_BINDINGS__BINDING_NAME__ARGUMENTS__ARGUMENT_NAME_

显示更多

Map<String,String>

启动 RabbitMQ 代理后应预定义的虚拟主机。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_VHOSTS

显示更多

字符串列表

传递给容器的环境变量。

环境变量:QUARKUS_RABBITMQ_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

Pulsar

当应用程序中存在 quarkus-messaging-pulsar 扩展,并且尚未显式配置代理地址时,将启用 Pulsar 开发服务。更多信息请参见 Pulsar 开发服务指南

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

是否已显式启用或禁用 Pulsar 的开发服务。通常默认启用开发服务,除非存在现有配置。对于 Pulsar,除非设置了 pulsar.client.serviceUrl,或者所有 Reactive Messaging Pulsar 通道都配置了 serviceUrl,否则开发服务会启动代理。

环境变量:QUARKUS_PULSAR_DEVSERVICES_ENABLED

显示更多

布尔值

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_PULSAR_DEVSERVICES_PORT

显示更多

整数

要使用的镜像。请注意,仅支持 Apache Pulsar 镜像。具体来说,镜像仓库必须以 apachepulsar/pulsar 结尾。查看 https://hub.docker.com/r/apachepulsar/pulsar 以查找可用版本。

环境变量:QUARKUS_PULSAR_DEVSERVICES_IMAGE_NAME

显示更多

字符串

apachepulsar/pulsar:3.2.4

指示由 Quarkus 开发服务管理的 Pulsar 代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,Pulsar 的开发服务将启动一个新容器。

该发现使用 quarkus-dev-service-pulsar 标签。该值使用 service-name 属性配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_PULSAR_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到已启动容器的 quarkus-dev-service-pulsar 标签的值。当 shared 设置为 true 时,使用此属性。在这种情况下,在启动容器之前,Pulsar 的开发服务会查找 quarkus-dev-service-pulsar 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-pulsar 标签设置为指定的值。

当您需要多个共享 Pulsar 代理时,将使用此属性。

环境变量:QUARKUS_PULSAR_DEVSERVICES_SERVICE_NAME

显示更多

字符串

pulsar

要在 Pulsar 实例上设置的代理配置

环境变量:QUARKUS_PULSAR_DEVSERVICES_BROKER_CONFIG__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

Redis

当应用程序中存在 quarkus-redis-client 扩展,并且尚未显式配置服务器地址时,将启用 Redis 开发服务。更多信息请参见 Redis 开发服务指南

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。

当启用开发服务时,Quarkus 将尝试在开发或测试模式下运行并且 Docker 正在运行时自动配置和启动数据库。

环境变量:QUARKUS_REDIS_DEVSERVICES_ENABLED

显示更多

布尔值

true

用于基于容器的 DevServices 提供程序的容器镜像名称。 如果要使用 Redis Stack 模块(bloom、graph、search…​),请使用:redis/redis-stack:latest

环境变量:QUARKUS_REDIS_DEVSERVICES_IMAGE_NAME

显示更多

字符串

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_REDIS_DEVSERVICES_PORT

显示更多

整数

指示由 Quarkus 开发服务管理的 Redis 服务器是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,Redis 的开发服务将启动一个新容器。

发现使用 quarkus-dev-service-redis 标签。 该值使用 service-name 属性进行配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_REDIS_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到已启动容器的 quarkus-dev-service-redis 标签的值。当 shared 设置为 true 时,使用此属性。在这种情况下,在启动容器之前,Redis 的开发服务会查找 quarkus-dev-service-redis 标签设置为配置值的容器。如果找到,它将使用此容器而不是启动新容器。否则,它将启动一个新容器,并将 quarkus-dev-service-redis 标签设置为指定的值。

当您需要多个共享 Redis 服务器时,将使用此属性。

环境变量:QUARKUS_REDIS_DEVSERVICES_SERVICE_NAME

显示更多

字符串

redis

传递给容器的环境变量。

环境变量:QUARKUS_REDIS_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

Vault

当应用程序中存在 quarkus-vault 扩展,并且尚未显式配置服务器地址时,将启用 Vault 开发服务。更多信息请参见 Vault 指南

Infinispan

当应用程序中存在 quarkus-infinispan-client 扩展,并且尚未显式配置服务器地址时,将启用 Infinispan 开发服务。更多信息请参见 Infinispan 开发服务指南

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。

当启用开发服务时,Quarkus 将尝试在开发或测试模式下运行并且 Docker 正在运行时自动配置和启动数据库。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_ENABLED

显示更多

布尔值

true

当配置为空时,会自动创建一个 Infinispan 默认客户端以连接到正在运行的开发服务。 但是,在某些情况下,创建此客户端是不必要的,但我们仍然需要启动 Infinispan Server。 在这种情况下,此属性用于确定扩展是否应默认创建客户端。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_CREATE_DEFAULT_CLIENT

显示更多

布尔值

true

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_PORT

显示更多

整数

指示 Quarkus Dev Services 管理的 Infinispan 服务器是否共享。 共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则使用它,因此不会启动第二个容器。 否则,Infinispan 的 Dev Services 会启动一个新容器。

发现使用 quarkus-dev-service-infinispan 标签。该值使用 service-name 属性进行配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到启动容器的 quarkus-dev-service-infinispan 标签的值。 当 shared 设置为 true 时,使用此属性。 在这种情况下,在启动容器之前,Infinispan 的 Dev Services 会查找 quarkus-dev-service-infinispan 标签设置为配置值的容器。 如果找到,它将使用此容器而不是启动新容器。 否则,它会启动一个新容器,并将 quarkus-dev-service-infinispan 标签设置为指定的值。

当您需要多个共享 Infinispan 服务器时,将使用此属性。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_SERVICE_NAME

显示更多

字符串

infinispan

要使用的镜像。请注意,仅支持官方 Infinispan 镜像。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_IMAGE_NAME

显示更多

字符串

要自动下载并添加到 Infinispan 服务器库的项目列表。

例如 Maven 坐标 (org.postgresql:postgresql:42.3.1) 或依赖项位置 URL。

如果传递了无效值,则 Infinispan 服务器在尝试启动时将抛出错误。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_ARTIFACTS

显示更多

字符串列表

添加站点名称以启动启用跨站点复制的 Infinispan Server 容器(例如 lon)。 跨站点复制是一种连接两个独立的 Infinispan Server 集群的功能,这两个集群可能在不同的数据中心中运行,并配置备份缓存以使用主动-主动或主动-被动复制跨集群复制数据。 有关 Infinispan 文档中跨站点复制的更多信息,请参见 https://infinispan.org/docs/stable/titles/xsite/xsite.html 配置 mcast-port 以避免与任何其他正在运行的 Infinispan Server 容器形成集群。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_SITE

显示更多

字符串

如果您已经在 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/

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_MCAST_PORT

显示更多

整数

传递给容器的环境变量。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

要传递给容器的 Infinispan 服务器配置块。

环境变量:QUARKUS_INFINISPAN_CLIENT_DEVSERVICES_CONFIG_FILES

显示更多

字符串列表

Elasticsearch

当应用程序中存在基于 Elasticsearch 的扩展程序(Elasticsearch 客户端或 Hibernate Search ORM Elasticsearch),并且尚未显式配置服务器地址时,将启用 Elasticsearch Dev Service。 可以在 Elasticsearch Dev Services 指南中找到更多信息。

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

此开发服务是否应在开发模式或测试中随应用程序一起启动。

除非显式设置连接配置(例如,quarkus.elasticsearch.hosts),否则默认情况下会启用开发服务。

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_ENABLED

显示更多

布尔值

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_PORT

显示更多

整数

要使用的 Elasticsearch 发行版。

默认为从显式配置的 image-name(如果有)推断的发行版,或者默认为在依赖扩展(例如 Hibernate Search)中配置的发行版,或者默认为 elastic

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_DISTRIBUTION

显示更多

elastic, opensearch

要使用的 Elasticsearch 容器映像。

默认值取决于配置的 distribution

  • 对于 elastic 发行版:docker.io/elastic/elasticsearch:9.0.2

  • 对于 opensearch 发行版:docker.io/opensearchproject/opensearch:3.0.0

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_IMAGE_NAME

显示更多

字符串

ES_JAVA_OPTS 环境变量的值。

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_JAVA_OPTS

显示更多

字符串

-Xms512m -Xmx1g

Quarkus 开发服务管理的 Elasticsearch 服务器是否共享。

共享时,Quarkus 会使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则会使用该容器,因此不会启动第二个容器。 否则,Elasticsearch 的开发服务将启动一个新容器。

发现使用 quarkus-dev-service-elasticsearch 标签。 该值使用 service-name 属性配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到启动的容器的 quarkus-dev-service-elasticsearch 标签的值。

shared 设置为 true 时,使用此属性。 在这种情况下,在启动容器之前,Elasticsearch 的 Dev Services 会查找 quarkus-dev-service-elasticsearch 标签设置为配置值的容器。 如果找到,它将使用此容器而不是启动新容器。 否则,它会启动一个新容器,并将 quarkus-dev-service-elasticsearch 标签设置为指定的值。

当您需要多个共享 Elasticsearch 服务器时,将使用此属性。

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_SERVICE_NAME

显示更多

字符串

elasticsearch

传递给容器的环境变量。

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

是否在开发模式会话或测试套件执行之后保持开发服务容器运行,以便在下一个开发模式会话或测试套件执行中重用它们。

在开发模式会话或测试套件执行中,只要其配置(用户名、密码、环境、端口绑定等)没有更改,Quarkus 将始终重用 Dev Services。此功能专门用于在 Quarkus 未运行时保持容器运行,以便在多次运行中重用它们。

此功能需要在 testcontainers.properties 中显式启用,可能需要更改您在开发模式和测试中配置数据初始化的方式,并且可能会使容器无限期地运行,从而迫使您手动停止和删除它们。 有关更多信息,请参见文档的此部分

此配置属性默认设置为 true,因此如果已在 testcontainers.properties 中启用了重用,但只想将其用于某些 Quarkus 应用程序,则它主要用于禁用重用。

环境变量:QUARKUS_ELASTICSEARCH_DEVSERVICES_REUSE

显示更多

布尔值

true

可观察性

当应用程序中存在 quarkus-observability-devservices 扩展程序,并且类路径上至少有一个开发资源时,将启用 Observability Dev Services。 可以在 Observability Dev Services 指南中找到更多信息。

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

Grafana LGTM 配置

类型

默认

开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。

启用 DevServices 时,Quarkus 将尝试在开发或测试模式下运行且 Docker 运行时自动配置并启动容器。

环境变量:QUARKUS_OBSERVABILITY_LGTM_ENABLED

显示更多

布尔值

true

指示 Quarkus Dev Services 管理的容器是否共享。 共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则使用它,因此不会启动第二个容器。 否则,Dev Services 会启动一个新容器。

发现使用 quarkus-dev-service-label 标签。 该值使用 service-name 属性进行配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_OBSERVABILITY_LGTM_SHARED

显示更多

布尔值

true

附加到启动容器的 quarkus-dev-service 标签的值。 当 shared 设置为 true 时,使用此属性。

环境变量:QUARKUS_OBSERVABILITY_LGTM_SERVICE_NAME

显示更多

字符串

lgtm

用户名。

环境变量:QUARKUS_OBSERVABILITY_LGTM_USERNAME

显示更多

字符串

admin

密码。

环境变量:QUARKUS_OBSERVABILITY_LGTM_PASSWORD

显示更多

字符串

admin

Grafana 容器的端口。

环境变量:QUARKUS_OBSERVABILITY_LGTM_GRAFANA_PORT

显示更多

整数

3000

超时。

环境变量:QUARKUS_OBSERVABILITY_LGTM_TIMEOUT

显示更多

Duration 

PT3M

Grafana LGTM Docker 镜像的名称。

环境变量:QUARKUS_OBSERVABILITY_LGTM_IMAGE_NAME

显示更多

字符串

docker.io/grafana/otel-lgtm:0.11.0

Docker 网络别名。

环境变量:QUARKUS_OBSERVABILITY_LGTM_NETWORK_ALIASES

显示更多

字符串列表

lgtm,lgtm.testcontainer.docker

容器的标签。

环境变量:QUARKUS_OBSERVABILITY_LGTM_LABEL

显示更多

字符串

quarkus-dev-service-lgtm

要记录的组件集。 要输出其容器日志的组件的逗号分隔集。

环境变量:QUARKUS_OBSERVABILITY_LGTM_LOGGING

显示更多

grafanalokiprometheustempootelcolall 列表

LGTM 的 OTLP 协议。

环境变量:QUARKUS_OBSERVABILITY_LGTM_OTLP_PROTOCOL

显示更多

字符串

http/protobuf

(Prometheus)抓取间隔,以秒为单位。

环境变量:QUARKUS_OBSERVABILITY_LGTM_SCRAPING_INTERVAL

显示更多

整数

10

我们是否强制抓取。

环境变量:QUARKUS_OBSERVABILITY_LGTM_FORCE_SCRAPING

显示更多

布尔值

开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。

启用 DevServices 时,Quarkus 将尝试在开发或测试模式下运行且 Docker 运行时自动配置并启动容器。

环境变量:QUARKUS_OBSERVABILITY_ENABLED

显示更多

布尔值

true

启用简化版的开发资源使用,而不是完整的可观察性处理。 确保 @code{enabled} 设置为 false。

环境变量:QUARKUS_OBSERVABILITY_DEV_RESOURCES

显示更多

布尔值

false

我们是否并行启动开发服务。

环境变量:QUARKUS_OBSERVABILITY_PARALLEL

显示更多

布尔值

false

关于 Duration 格式

要写入 duration 值,请使用标准 java.time.Duration 格式。有关更多信息,请参阅 Duration#parse() Java API 文档

您还可以使用简化的格式,以数字开头

  • 如果该值仅为一个数字,则表示以秒为单位的时间。

  • 如果该值是一个数字后跟 ms,则表示以毫秒为单位的时间。

在其他情况下,简化格式将被转换为 java.time.Duration 格式以进行解析

  • 如果该值是一个数字后跟 hms,则在其前面加上 PT

  • 如果该值是一个数字后跟 d,则在其前面加上 P

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

相关内容