首页 > 解决方案 > 在 docker 上使用 MySql 运行 Keycloak - 无法启动

问题描述

我正在尝试启动一个使用自定义 mysql 数据库的 Keycloak 实例。之前使用的是mariadb数据库,但是需要迁移到mysql。这是 docker-compose.yml 文件:

version: "3.6"
services:
 vnfm-keycloak:
  container_name: sample-keycloak
  image: quay.io/keycloak/keycloak:latest
  restart: always
  ports:
   - 8180:8080
  environment:
    PROXY_ADDRESS_FORWARDING: "true"
    DB_VENDOR: MYSQL
    DB_ADDR: 152.25.100.2
    DB_DATABASE: keycloak
    DB_USER: user
    DB_PASSWORD: password
    KEYCLOAK_USER: admin
    KEYCLOAK_PASSWORD: admin
  networks:
    - database_static-network
 networks:
  database_static-network:
   external: true

使用 mariadb 开始时DB_VENDOR: mariadb. 我将其更改为DB_VENDOR: MYSQL.

我确保在 mysql 中创建数据库和用户,并为用户提供数据库的权限。随着 mysql 的启动和运行,我启动了 keycloak docker 来连接和创建的表,这些表是由于在 keycloak 数据库中执行这个过程而创建的。但服务无法启动,出现以下错误:

vnfm-keycloak    | 03:44:27,583 ERROR [org.jboss.as.server] (ServerService Thread Pool -- 46) WFLYSRV0022: Deploy of deployment "keycloak-server.war" was rolled back with no failure message
vnfm-keycloak    | 03:44:27,672 INFO  [org.jboss.as] (MSC service thread 1-5) WFLYSRV0050: Keycloak 12.0.4 (WildFly Core 13.0.3.Final) stopped in 742ms
vnfm-keycloak    | 03:44:27,671 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0403: Unexpected failure during execution of the following operation(s): [{
vnfm-keycloak    |     "address" => [
vnfm-keycloak    |         ("core-service" => "management"),
vnfm-keycloak    |         ("security-realm" => "ManagementRealm")
vnfm-keycloak    |     ],
vnfm-keycloak    |     "operation" => "add",
vnfm-keycloak    |     "map-groups-to-roles" => false
vnfm-keycloak    | }, {
vnfm-keycloak    | }]: java.util.concurrent.RejectedExecutionException
vnfm-keycloak    |  at org.jboss.threads@2.4.0.Final//org.jboss.threads.RejectingExecutor.execute(RejectingExecutor.java:37)
vnfm-keycloak    |  at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2029)
vnfm-keycloak    |  at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.execute(EnhancedQueueExecutor.java:757)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.notification.NotificationSupports$NonBlockingNotificationSupport.emit(NotificationSupports.java:95)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.OperationContextImpl.notifyModificationsComplete(OperationContextImpl.java:505)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.OperationContextImpl.releaseStepLocks(OperationContextImpl.java:1233)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractOperationContext$Step.finalizeInternal(AbstractOperationContext.java:1503)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractOperationContext$Step.finalizeStep(AbstractOperationContext.java:1461)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractOperationContext$Step.access$400(AbstractOperationContext.java:1325)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractOperationContext.executeResultHandlerPhase(AbstractOperationContext.java:877)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:757)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:468)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1415)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:529)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:515)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:477)
vnfm-keycloak    |  at org.jboss.as.server@13.0.3.Final//org.jboss.as.server.ServerService.boot(ServerService.java:451)
vnfm-keycloak    |  at org.jboss.as.server@13.0.3.Final//org.jboss.as.server.ServerService.boot(ServerService.java:404)
vnfm-keycloak    |  at org.jboss.as.controller@13.0.3.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416)
vnfm-keycloak    |  at java.base/java.lang.Thread.run(Thread.java:829)
vnfm-keycloak    |  Suppressed: java.util.concurrent.RejectedExecutionException: Executor is being shut down
vnfm-keycloak    |      at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2031)
vnfm-keycloak    |      ... 18 more

标签: mysqldockerkeycloak

解决方案


推荐阅读