You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地Docker部署Keycloak管理控制台无限加载问题求助

Keycloak管理控制台无限加载(显示Loading the Admin UI)排查与修复

结合你提供的docker-compose.yml配置,问题核心集中在数据库初始化不完整和Keycloak主机名配置错误上,以下是具体修复步骤:

1. 修复MySQL数据库配置,确保Keycloak有可用的数据库和用户

你的MySQL服务仅创建了best_db数据库,且未配置keycloak用户,但Keycloak配置中指定要连接keycloak数据库和keycloak用户,这会导致Keycloak启动时无法连接数据库,后端服务异常进而引发UI加载失败。

修改database服务的配置:

database:
  image: mysql:8.1.0
  platform: linux/amd64
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: best_db
    MYSQL_USER: keycloak
    MYSQL_PASSWORD: keycloak
    MYSQL_ROOT_HOST: "%" # 允许root用户远程连接,方便初始化额外数据库
  ports:
    - '3306:3306'
  volumes:
    - ./mysql-data:/var/lib/mysql
    - ./docker-configs/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql # 添加初始化脚本
  healthcheck:
    test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot"]
    interval: 5s
    timeout: 5s
    retries: 5

在./docker-configs/init-db.sql文件中添加以下内容(自动创建Keycloak所需的数据库并授权):

CREATE DATABASE IF NOT EXISTS keycloak;
GRANT ALL PRIVILEGES ON keycloak.* TO 'keycloak'@'%';
FLUSH PRIVILEGES;

2. 调整Keycloak的主机名配置

你设置了KC_HOSTNAME: keycloak,但本地访问Keycloak用的是localhost:8080,主机名不匹配会导致前端静态资源路径错误,无法加载UI所需文件,最终出现无限加载。

修改Keycloak服务的environment,将KC_HOSTNAME改为localhost,或者直接删除该配置(start-dev模式下默认使用localhost):

keycloak:
  image: quay.io/keycloak/keycloak:22.0
  environment:
    KC_HTTP_ENABLED: 'true'
    KEYCLOAK_ADMIN: admin
    KEYCLOAK_ADMIN_PASSWORD: admin
    KC_DB_URL_HOST: database
    KC_DB_URL_DATABASE: keycloak
    KC_DB_USERNAME: keycloak
    KC_DB_PASSWORD: keycloak
    KC_HOSTNAME: localhost # 修改为localhost
    KC_DB_URL_PORT: 3306
    KC_HOSTNAME_STRICT: 'false'
    KC_HOSTNAME_STRICT_HTTPS: 'false'
    KC_TRANSACTION_XA_ENABLED: 'false'
  command: '-v start-dev --import-realm'
  depends_on:
    database:
      condition: service_healthy # 等待数据库完全就绪后启动
  ports:
    - '8080:8080'
    - '8443:8443'

3. 验证修复效果

  1. 清理旧的MySQL数据卷(如果有残留数据):docker-compose down -v
  2. 重新启动服务:docker-compose up -d
  3. 查看Keycloak启动日志,确认无数据库连接错误:docker-compose logs -f keycloak
  4. 访问http://localhost:8080/admin,检查UI是否正常加载。

内容的提问来源于stack exchange,提问作者monaxi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:52:51