试图用 docker 提升 Keycloak,但它没有开始.操作 ( "add" ) 失败 - 地址:


05:49:02,840 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "microprofile-metrics-smallrye")]): java.lang.NullPointerException
at org.wildfly.extension.microprofile.metrics-smallrye@20.0.1.Final//org.wildfly.extension.microprofile.metrics.MicroProfileMetricsSubsystemAdd$2.execute(MicroProfileMetricsSubsystemAdd.java:86)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:999)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:743)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:467)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1413)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:527)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:515)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:477)
at org.jboss.as.server@12.0.3.Final//org.jboss.as.server.ServerService.boot(ServerService.java:451)
at org.jboss.as.server@12.0.3.Final//org.jboss.as.server.ServerService.boot(ServerService.java:404)
at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416)
at java.base/java.lang.Thread.run(Thread.java:834)

我在docker compose设置中尝试运行Keycapture时遇到了这个错误。我的问题是因为Keycloft无法连接到数据库容器。事实上,密钥斗篷启动日志在错误"…"前几行抱怨数据库连接问题;。。。操作("添加"(失败">

Keycloft启动可能失败的原因之一是您错过了启用上传脚本标志。

该标志是不推荐使用的,通常只有当您想通过管理界面进行领域导入时才需要,但在我的情况下,如果我想用导入文件启动Key斗篷,也需要启用该标志。否则,将抛出您在原始问题中提供的相同异常。

启用标志的启动参数为:-Dkeycloak.profile.feature.upload_scripts=enabled

这里有一个小的免责声明。正如文档所述,不应连续启用此标志。因此,只需为初始导入启用它,并将您的领域配置持久化到外部数据库中。

对我来说,在docker compose的情况下运行容器,添加DB_VENDORenv变量有帮助:

keycloak:
image: jboss/keycloak
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
DB_VENDOR: h2

最新更新