为什么当我尝试使用SQL外部数据库创建Keycloak安装的docker容器时,我会看到以下错误? &



我试图通过使用docker-compose文件安装Keycloak与SQL数据库服务器。IT运行,但keycloak停止,并出现以下错误。

"ssl-context" => "applicationSSC",

"proxy-address-forwarding" => expression "${env.PROXY_ADDRESS_FORWARDING:false}",

"enable-http2" => true

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("server" => "default-server"),

("host" => "default-host")

],

"alias" => ["localhost"]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("server" => "default-server"),

("host" => "default-host"),

("location" => "/")

],

"handler" => "welcome-content"

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("server" => "default-server"),

("host" => "default-host"),

("setting" => "http-invoker")

],

"http-authentication-factory" => "application-http-authentication"

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("servlet-container" => "default")

]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("servlet-container" => "default"),

("setting" => "jsp")

]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("servlet-container" => "default"),

("setting" => "websockets")

]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("configuration" => "handler"),

("file" => "welcome-content")

],

"path" => expression "${jboss.home.dir}/welcome-content"

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("application-security-domain" => "other")

],

"security-domain" => "ApplicationDomain"

}, {

"operation" => "add",

"address" => [("subsystem" => "weld")]

}, {

"operation" => "boottime-controller-initializer-step",

"address" => []

}, {

"operation" => "add-deployer-chains",

"address" => []

}]: java.util.concurrent.RejectedExecutionException

at org.jboss.threads@2.4.0.Final//org.jboss.threads.RejectingExecutor.execute(RejectingExecutor.java:37)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2029)   
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.execute(EnhancedQueueExecutor.java:757)   
at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.notification.NotificationSupports$NonBlockingNotificationSupport.emit(NotificationSupports.java:95)   
at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.OperationContextImpl.notifyModificationsComplete(OperationContextImpl.java:517)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.OperationContextImpl.releaseStepLocks(OperationContextImpl.java:1245) 
at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext$Step.finalizeInternal(AbstractOperationContext.java:1534)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext$Step.finalizeStep(AbstractOperationContext.java:1492)
at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext$Step.access$400(AbstractOperationContext.java:1356)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext.executeResultHandlerPhase(AbstractOperationContext.java:910)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:790)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:466)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1427)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:559)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:572)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:534)

at org.jboss.as.server@18.1.0.Final//org.jboss.as.server.ServerService.boot(ServerService.java:470)

at org.jboss.as.server@18.1.0.Final//org.jboss.as.server.ServerService.boot(ServerService.java:414)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:473)

at java.base/java.lang.Thread.run(Thread.java:829)

Suppressed: java.util.concurrent.RejectedExecutionException: Executor is being shut down

at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2031)

... 18 more

rUser with username 'admin' already added to '/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json'

我已经搜索了其他门票,但无法解决这个问题。用户名不是问题,我已删除所有并重试,无法运行。

我的Docker撰写文件如下

version: "3.2"
services:
mssql:
image: mcr.microsoft.com/mssql/server
ports:
- "1433:1433"
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=Password!23
- MSSQL_PID=Developer
mssqlscripts:
image: mcr.microsoft.com/mssql-tools
depends_on:
- mssql
command: /bin/bash -c 'until /opt/mssql-tools/bin/sqlcmd -S mssql -U sa -P "Password!23" -Q "create database Keycloak"; do sleep 5; done'
keycloak:
image: quay.io/keycloak/keycloak:legacy
depends_on:
- mssql
- mssqlscripts
ports:
- "8443:8080"
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=admin
- DB_VENDOR=mssql
- DB_USER=sa
- DB_PASSWORD=Password!23
- DB_ADDR=mssql
- DB_DATABASE=Keycloak

当我试图注释用户名并通过

"socket-binding" => "https",

"ssl-context" => "applicationSSC",

"proxy-address-forwarding" => expression "${env.PROXY_ADDRESS_FORWARDING:false}",

"enable-http2" => true

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("server" => "default-server"),

("host" => "default-host")

],

"alias" => ["localhost"]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("server" => "default-server"),

("host" => "default-host"),

("location" => "/")

],

"handler" => "welcome-content"

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("server" => "default-server"),

("host" => "default-host"),

("setting" => "http-invoker")

],

"http-authentication-factory" => "application-http-authentication"

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("servlet-container" => "default")

]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("servlet-container" => "default"),

("setting" => "jsp")

]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("servlet-container" => "default"),

("setting" => "websockets")

]

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("configuration" => "handler"),

("file" => "welcome-content")

],

"path" => expression "${jboss.home.dir}/welcome-content"

}, {

"operation" => "add",

"address" => [

("subsystem" => "undertow"),

("application-security-domain" => "other")

],

"security-domain" => "ApplicationDomain"

}, {

"operation" => "add",

"address" => [("subsystem" => "weld")]

}, {

"operation" => "boottime-controller-initializer-step",

"address" => []

}, {

"operation" => "add-deployer-chains",

"address" => []

}]: java.util.concurrent.RejectedExecutionException

at org.jboss.threads@2.4.0.Final//org.jboss.threads.RejectingExecutor.execute(RejectingExecutor.java:37)

at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2029)

at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.execute(EnhancedQueueExecutor.java:757)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.notification.NotificationSupports$NonBlockingNotificationSupport.emit(NotificationSupports.java:95)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.OperationContextImpl.notifyModificationsComplete(OperationContextImpl.java:517)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.OperationContextImpl.releaseStepLocks(OperationContextImpl.java:1245)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext$Step.finalizeInternal(AbstractOperationContext.java:1534)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext$Step.finalizeStep(AbstractOperationContext.java:1492)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext$Step.access$400(AbstractOperationContext.java:1356)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext.executeResultHandlerPhase(AbstractOperationContext.java:910)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:790)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:466)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1427)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:559)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:572)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:534)

at org.jboss.as.server@18.1.0.Final//org.jboss.as.server.ServerService.boot(ServerService.java:470)

at org.jboss.as.server@18.1.0.Final//org.jboss.as.server.ServerService.boot(ServerService.java:414)

at org.jboss.as.controller@18.1.0.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:473)

at java.base/java.lang.Thread.run(Thread.java:829)

Suppressed: java.util.concurrent.RejectedExecutionException: Executor is being shut down

at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2031)

... 18 more

在Docker中,keyclick的工作方式与k8s不同。Docker编写文件是一步一步运行的,如果你运行文件,它就会用用户名和密码填充数据库。现在有两种选择,一种是在每次尝试失败后尝试添加不同的用户名和密码。另一种选择是在每次运行失败后尝试之前清理数据库,以避免已经添加了错误用户。我希望这对你有帮助。

最新更新