Keycloak 无法启动,并显示“无法解析私有接口”

Keycloak 无法启动,并显示“无法解析私有接口”

这是给我未来的自己和任何遇到 Keycloak/Wildfly 无法解决接口错误的人的注释。

MSC000001:无法启动服务 org.wildfly.network.interface.private:服务 org.wildfly.network.interface.private 中的 org.jboss.msc.service.StartException:WFLYSRV0082:无法解析私有接口

答案1

这对我有用:

docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:9.0.2 -Djboss.bind.address.private=127.0.0.1 -Djboss.bind.address=0.0.0.0

这是docker run来自的命令https://www.keycloak.org/getting-started/getting-started-docker但还有两个附加选项:

-Djboss.bind.address.private=127.0.0.1 -Djboss.bind.address=0.0.0.0

答案2

像这样运行它可以绕过 podman 和 docker 上的问题。

podman run --rm -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin registry.hub.docker.com/jboss/keycloak:latest -Djboss.bind.address.private=127.0.0.1 -Djboss.bind.address=127.0.0.1

答案3

如果 docker 使用 ipv6,wildfly 服务器将因此错误而失败(当时 Keycloak 8.0.2 中存在此错误)。

一种解决方案是禁用 docker 容器的 ipv6。

如果您正在使用 docker-compose:

  networks:
    kc_net:
      driver: bridge
      enable_ipv6: false

否则使用命令行标志。

答案4

启用ipv6后,您可以使用这些JAVA_OPTS来启动wildfly

JAVA_OPTS = "-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true -Djboss.bind.address.private=::1 -Djboss.bind.address=::"

相关内容