Keycloak - docker jboss / keycloak-mysql“表'keycloak.WEB_ORIGINS'不存在”

问题描述 投票:0回答:1

我一直在尝试在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
java mysql jboss docker-compose keycloak
1个回答
0
投票

如果表不存在,请尝试向docker文件添加创建或更新。如果表存在且尚未填充数据,则再次删除该表。

© www.soinside.com 2019 - 2024. All rights reserved.