Keycloak - docker jboss / keycloak-mysql“表'keycloak.WEB_ORIGINS'不存在”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keycloak - docker jboss / keycloak-mysql“表'keycloak.WEB_ORIGINS'不存在”相关的知识,希望对你有一定的参考价值。
我一直在尝试在docker-compose文件中使用jboss / keycloak-mysql来站起来一个Keycloak服务器和一个mysql数据库。我在本地部署期间遇到问题,告诉我WEB_ORIGINS表不存在。我可以确认链接的mysql数据库已启动并且有很多keycloak表。此错误导致docker keycloak容器无法启动。
Docker Image我正在使用:https://hub.docker.com/r/jboss/keycloak-mysql/
Docker-Compose文件:
version: '3'
services:
keycloak:
build:
context: .
dockerfile: Dockerfile
links:
- mysql:mysql
ports:
- "8080:8080"
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=password
- MYSQL_DATABASE=keycloak
- MYSQL_USERNAME=keycloak
- MYSQL_PASSWORD=password
- MYSQL_PORT_3306_TCP_ADDR=mysql
- MYSQL_PORT_3306_TCP_PORT=3308
entrypoint: sh -c "sleep 20;/opt/jboss/docker-entrypoint.sh"
mysql:
image: mysql
ports:
- "3308:3306"
environment:
- MYSQL_DATABASE=keycloak
- MYSQL_USER=keycloak
- MYSQL_PASSWORD=password
- MYSQL_ROOT_PASSWORD=password
错误:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'keycloak.WEB_ORIGINS' doesn't exist
完整堆栈跟踪:
keycloak_1 | 20:40:05,429 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (ServerService Thread Pool -- 51) SQL Error: 1146, SQLState: 42S02
keycloak_1 | 20:40:05,429 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (ServerService Thread Pool -- 51) Table 'keycloak.WEB_ORIGINS' doesn't exist
keycloak_1 | 20:40:05,441 INFO [org.jboss.as.server] (Thread-2) WFLYSRV0220: Server shutdown has been requested via an OS signal
keycloak_1 | 20:40:05,445 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 51) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./auth: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./auth: java.lang.RuntimeException: RESTEASY003325: Failed to construct public org.keycloak.services.resources.KeycloakApplication(javax.servlet.ServletContext,org.jboss.resteasy.core.Dispatcher)
keycloak_1 | at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:84)
keycloak_1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
keycloak_1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266)
keycloak_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
keycloak_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
keycloak_1 | at java.lang.Thread.run(Thread.java:748)
keycloak_1 | at org.jboss.threads.JBossThread.run(JBossThread.java:320)
keycloak_1 | Caused by: java.lang.RuntimeException: RESTEASY003325: Failed to construct public org.keycloak.services.resources.KeycloakApplication(javax.servlet.ServletContext,org.jboss.resteasy.core.Dispatcher)
keycloak_1 | at org.jboss.resteasy.core.ConstructorInjectorImpl.construct(ConstructorInjectorImpl.java:162)
keycloak_1 | at org.jboss.resteasy.spi.ResteasyProviderFactory.createProviderInstance(ResteasyProviderFactory.java:2298)
keycloak_1 | at org.jboss.resteasy.spi.ResteasyDeployment.createApplication(ResteasyDeployment.java:340)
keycloak_1 | at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:253)
keycloak_1 | at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:120)
keycloak_1 | at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:36)
keycloak_1 | at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117)
keycloak_1 | at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:78)
keycloak_1 | at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103)
keycloak_1 | at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:250)
keycloak_1 | at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:133)
keycloak_1 | at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:565)
keycloak_1 | at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:536)
keycloak_1 | at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
keycloak_1 | at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
keycloak_1 | at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
keycloak_1 | at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
keycloak_1 | at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
keycloak_1 | at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
keycloak_1 | at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
keycloak_1 | at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:578)
keycloak_1 | at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:100)
keycloak_1 | at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:81)
keycloak_1 | ... 6 more
keycloak_1 | Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
keycloak_1 | at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
keycloak_1 | at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
keycloak_1 | at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
keycloak_1 | at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
keycloak_1 | at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79)
keycloak_1 | at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.getResultSet(AbstractLoadPlanBasedLoader.java:434)
keycloak_1 | at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeQueryStatement(AbstractLoadPlanBasedLoader.java:186)
keycloak_1 | at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:121)
keycloak_1 | at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:86)
keycloak_1 | at org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:88)
keycloak_1 | at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:688)
keycloak_1 | at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:75)
keycloak_1 | at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:2004)
keycloak_1 | at org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:567)
keycloak_1 | at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:249)
keycloak_1 | at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:563)
keycloak_1 | at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:132)
keycloak_1 | at org.hibernate.collection.internal.PersistentSet.iterator(PersistentSet.java:163)
keycloak_1 | at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
keycloak_1 | at org.keycloak.models.jpa.ClientAdapter.getWebOrigins(ClientAdapter.java:138)
keycloak_1 | at org.keycloak.models.cache.infinispan.entities.CachedClient.<init>(CachedClient.java:91)
keycloak_1 | at org.keycloak.models.cache.infinispan.RealmCacheSession.getClientById(RealmCacheSession.java:992)
keycloak_1 | at org.keycloak.models.jpa.RealmAdapter.getMasterAdminClient(RealmAdapter.java:1006)
keycloak_1 | at org.keycloak.models.cache.infinispan.entities.CachedRealm.<init>(CachedRealm.java:220)
keycloak_1 | at org.keycloak.models.cache.infinispan.RealmCacheSession.getRealm(RealmCacheSession.java:424)
keycloak_1 | at org.keycloak.models.jpa.JpaRealmProvider.getRealms(JpaRealmProvider.java:106)
keycloak_1 | at org.keycloak.models.cache.infinispan.RealmCacheSession.getRealms(RealmCacheSession.java:484)
keycloak_1 | at org.keycloak.services.managers.ApplianceBootstrap.isNewInstall(ApplianceBootstrap.java:46)
keycloak_1 | at org.keycloak.services.resources.KeycloakApplication.migrateAndBootstrap(KeycloakApplication.java:210)
keycloak_1 | at org.keycloak.services.resources.KeycloakApplication$1.run(KeycloakApplication.java:144)
keycloak_1 | at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransaction(KeycloakModelUtils.java:227)
keycloak_1 | at org.keycloak.services.resources.KeycloakApplication.<init>(KeycloakApplication.java:135)
keycloak_1 | at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
keycloak_1 | at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
keycloak_1 | at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
keycloak_1 | at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
keycloak_1 | at org.jboss.resteasy.core.ConstructorInjectorImpl.construct(ConstructorInjectorImpl.java:150)
keycloak_1 | ... 28 more
keycloak_1 | Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'keycloak.WEB_ORIGINS' doesn't exist
keycloak_1 | at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
keycloak_1 | at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
keycloak_1 | at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
keycloak_1 | at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
keycloak_1 | at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
keycloak_1 | at com.mysql.jdbc.Util.getInstance(Util.java:386)
keycloak_1 | at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
keycloak_1 | at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
keycloak_1 | at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
keycloak_1 | at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
keycloak_1 | at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
keycloak_1 | at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
keycloak_1 | at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
keycloak_1 | at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2293)
keycloak_1 | at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
keycloak_1 | at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70)
keycloak_1 | ... 60 more
keycloak_1 |
keycloak_1 | 20:40:05,455 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("deployment" => "keycloak-server.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.undertow.deployment.default-server.default-host./auth" => "java.lang.RuntimeException: RESTEASY003325: Failed to construct public org.keycloak.services.resources.KeycloakApplication(javax.servlet.ServletContext,org.jboss.resteasy.core.Dispatcher)
keycloak_1 | Caused by: java.lang.RuntimeException: RESTEASY003325: Failed to construct public org.keycloak.services.resources.KeycloakApplication(javax.servlet.ServletContext,org.jboss.resteasy.core.Dispatcher)
keycloak_1 | Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
keycloak_1 | Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'keycloak.WEB_ORIGINS' doesn't exist"}}
keycloak_1 | 20:40:05,481 INFO [org.jboss.as.server] (ServerService Thread Pool -- 49) WFLYSRV0010: Deployed "keycloak-server.war" (runtime-name : "keycloak-server.war")
keycloak_1 | 20:40:05,493 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0010: Unbound data source [java:jboss/datasources/KeycloakDS]
keycloak_1 | 20:40:05,507 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0008: Undertow HTTPS listener https suspending
keycloak_1 | 20:40:05,511 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-4) WFLYJCA0010: Unbound data source [java:jboss/datasources/ExampleDS]
keycloak_1 | 20:40:05,523 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-7) WFLYJCA0019: Stopped Driver service with driver-name = h2
keycloak_1 | 20:40:05,525 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0007: Undertow HTTPS listener https stopped, was bound to 127.0.0.1:8443
keycloak_1 | 20:40:05,541 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0019: Host default-host stopping
keycloak_1 | 20:40:05,550 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0019: Stopped Driver service with driver-name = mysql
keycloak_1 | 20:40:05,554 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0008: Undertow HTTP listener default suspending
keycloak_1 | 20:40:05,555 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0007: Undertow HTTP listener default stopped, was bound to 127.0.0.1:8080
keycloak_1 | 20:40:05,556 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0004: Undertow 1.4.18.Final stopping
keycloak_1 | 20:40:05,563 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 46) WFLYCLINF0003: Stopped authenticationSessions cache from keycloak container
keycloak_1 | 20:40:05,563 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 49) WFLYCLINF0003: Stopped users cache from keycloak container
keycloak_1 | 20:40:05,563 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 48) WFLYCLINF0003: Stopped keys cache from keycloak container
keycloak_1 | 20:40:05,564 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 33) WFLYCLINF0003: Stopped client-mappings cache from ejb container
keycloak_1 | 20:40:05,564 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) WFLYCLINF0003: Stopped offlineSessions cache from keycloak container
keycloak_1 | 20:40:05,572 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 35) WFLYCLINF0003: Stopped sessions cache from keycloak container
keycloak_1 | 20:40:05,573 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 47) WFLYCLINF0003: Stopped realms cache from keycloak container
keycloak_1 | 20:40:05,575 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 28) WFLYCLINF0003: Stopped actionTokens cache from keycloak container
keycloak_1 | 20:40:05,576 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 30) WFLYCLINF0003: Stopped authorization cache from keycloak container
keycloak_1 | 20:40:05,576 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 45) WFLYCLINF0003: Stopped work cache from keycloak container
keycloak_1 | 20:40:05,584 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 38) WFLYCLINF0003: Stopped loginFailures cache from keycloak container
keycloak_1 | 20:40:05,589 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0028: Stopped deployment keycloak-server.war (runtime-name: keycloak-server.war) in 97ms
keycloak_1 | 20:40:05,598 INFO [org.jboss.as.clustering.infinispan] (MSC service thread 1-5) WFLYCLINF0003: Stopped authorizationRevisions cache from keycloak container
keycloak_1 | 20:40:05,603 INFO [org.jboss.as.clustering.infinispan] (MSC service thread 1-5) WFLYCLINF0003: Stopped realmRevisions cache from keycloak container
keycloak_1 | 20:40:05,606 INFO [org.jboss.as.clustering.infinispan] (MSC service thread 1-5) WFLYCLINF0003: Stopped userRevisions cache from keycloak container
keycloak_1 | 20:40:05,634 INFO [org.jboss.as] (MSC service thread 1-7) WFLYSRV0050: Keycloak 3.3.0.CR2 (WildFly Core 3.0.1.Final) stopped in 144ms
keycloak_1 | keycloak_keycloak_1 exited with code 1
答案
如果表不存在,请尝试向docker文件添加创建或更新。如果表存在且尚未填充数据,则再次删除该表。
以上是关于Keycloak - docker jboss / keycloak-mysql“表'keycloak.WEB_ORIGINS'不存在”的主要内容,如果未能解决你的问题,请参考以下文章
使用docker和java spring时keycloak认证问题
keycloak 容器正在重新启动,但出现错误 docker-compose
Keycloak Docker 映像基本 unix 命令不可用