运行Keycloak 22.0.5(Docker部署)出现日志警告如何解决?
解决Keycloak 22.0.5启动日志问题
1. 处理Hostname设置的INFO日志
这条INFO日志提示Base URL: <unset>, Admin URL: <unset>,是因为仅配置了KC_HOSTNAME,但未明确指定完整的基础访问URL和管理控制台URL。虽然这不会影响Keycloak正常运行,但如果想消除这条提示,只需在环境变量中添加以下配置:
KC_HOSTNAME_URL: https://localhost:8443:指定Keycloak的基础访问地址KC_HOSTNAME_ADMIN_URL: https://localhost:8443:指定管理控制台的访问地址
2. 处理Infinispan缓存持久化的WARN日志
这条WARN日志ISPN000569: Unable to persist Infinispan internal caches as no global state enabled,是因为默认情况下Keycloak未启用全局状态存储,导致内部缓存无法持久化:
- 若你是开发环境(使用
start-dev命令):这个警告完全可以忽略,不影响功能使用。 - 若要彻底消除警告(或适配生产环境需求):添加环境变量
KC_GLOBAL_STATE_ENABLED: true启用全局状态存储;如果需要将缓存数据持久化到PostgreSQL,还可以额外配置KC_CACHE_STORAGE: jdbc,让缓存数据存储到外部数据库中。
修改后的Docker Compose配置示例
keycloak: image: quay.io/keycloak/keycloak:22.0.5 command: - start-dev environment: KC_DB_URL: jdbc:postgresql://db:5432/keycloak KC_DB_URL_HOST: db KC_DB: postgres KC_DB_USERNAME: postgres KC_DB_PASSWORD: postgres KC_HEALTH_ENABLED: true KC_METRICS_ENABLED: true KC_HOSTNAME: localhost KC_HOSTNAME_URL: https://localhost:8443 KC_HOSTNAME_ADMIN_URL: https://localhost:8443 KC_GLOBAL_STATE_ENABLED: true KEYCLOAK_ADMIN: ******** KEYCLOAK_ADMIN_PASSWORD: ******** ports: - 8443:8443 depends_on: - db networks: - local-keycloak
内容的提问来源于stack exchange,提问作者Pranav
相关产品推荐
相关产品推荐

