这是给我未来的自己和任何遇到 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=::"