创建Keycloak Docker容器时提示DB_ADDR未绑定变量报错如何解决
问题原因
你使用的jboss/keycloak是官方已废弃的旧镜像,最终版本停留在16.1.1,其入口脚本的环境变量校验逻辑存在缺陷:当你指定DB_VENDOR=h2(嵌入式数据库,无需外部数据库地址)时,脚本仍然会优先校验DB_ADDR变量是否存在,同时传入两个参数反而会触发逻辑冲突,导致报错没有消失。
解决方案
方案1:继续使用旧版jboss/keycloak镜像
直接移除DB_ADDR参数即可,嵌入式H2数据库不需要配置外部数据库地址,正确命令如下:
docker run -it -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=h2 jboss/keycloak
方案2:使用官方当前维护的新版Keycloak镜像(推荐)
新版镜像托管在quay.io/keycloak/keycloak,环境变量和启动参数有调整,开发模式下默认使用H2数据库,无需额外配置数据库相关参数,命令如下:
docker run -it -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:latest start-dev
启动后访问http://localhost:8080/admin即可用设置的用户名密码登录控制台。
内容的提问来源于stack exchange,提问作者macmagic
相关产品推荐
相关产品推荐

