Keycloak从18升级至25.0.2启动报错:命令选项含空格求助
Keycloak 18升级到25.0.2启动报错解决方法
问题原因
你遇到的报错是因为docker-compose的command参数格式不符合Keycloak 25的CLI解析要求:旧版本里把整个启动命令打包成一个字符串,新版本的Keycloak CLI会把这个带空格的字符串当成单个选项,从而触发"选项不应包含空格"的错误。
解决方案
把command里的每个参数拆分成独立的列表项,不要用引号把所有内容包在一起。修正后的docker-compose command配置如下:
command: - start-dev - --spi-login-protocol-openid-connect-legacy-logout-redirect-uri=true - --auto-build - --hostname-strict=false - -Dkeycloak.profile.feature.account_api=enabled - --import-realm
如果想用kc.sh前缀,也可以写成:
command: - kc.sh - start-dev - --spi-login-protocol-openid-connect-legacy-logout-redirect-uri=true - --auto-build - --hostname-strict=false - -Dkeycloak.profile.feature.account_api=enabled - --import-realm
原理说明
Keycloak 17之后切换为Quarkus架构,CLI参数解析逻辑更严格。当你把所有参数放在一个字符串里时,CLI会将start-dev --spi-...判定为单个选项名称,其中的空格会被识别为非法格式;拆分后每个参数都是独立选项,就能被正确解析。
内容的提问来源于stack exchange,提问作者MordecaiOD
相关产品推荐
相关产品推荐

