一周前切换到m1 mac,我无法启动我的应用程序并使用docker运行,因为jboss/keycloak映像没有按预期工作。当尝试访问localhost时,从容器中获得以下消息:8080
12:08:12,456 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service org.wildfly.network.interface.private: org.jboss.msc.service.StartException in service org.wildfly.network.interface.private: WFLYSRV0082: failed to resolve interface private
12:08:12,526 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("interface" => "private")]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.network.interface.private" => "WFLYSRV0082: failed to resolve interface private"}}
12:08:13,463 ERROR [org.jboss.as] (Controller Boot Thread) WFLYSRV0026: Keycloak 12.0.4 (WildFly Core 13.0.3.Final) started (with errors) in 20826ms - Started 483 of 925 services (54 services failed or missing dependencies, 684 services are lazy, passive or on-demand)
尝试了所有的图像版本,所有的行为都一样。有没有人设法运行这个图像没有问题?谢谢
8条答案
按热度按时间9bfwbjaz1#
你也可以在本地构建keycloak docker映像,我可以在这样做之后启动keycloak。
1.克隆Keycloak容器存储库:git clonegit@github.com/keycloak-containers.git的一个例子,请访问:
1.打开服务器目录(cd keycloak-containers/server)
1.以所需版本 checkout ,例如git checkout 12.0.4
1.构建docker映像docker build -t jboss/keycloak:12.0.4。
tyu7yeag2#
使用此映像,我现在可以启动keycloak。https://hub.docker.com/r/wizzn/keycloak
k2arahey3#
对于Keycloak 16、docker 20.10和docker-compose 1.29,此图像可以完美地工作:https://hub.docker.com/r/sleighzy/keycloak-正如@zakjan所建议的。
类似以下的服务:
应该足够启动和运行了。
piok6c0g4#
我用的是m1,我运行了这个,它起作用了。
我只是将
--platform=linux/amd64
添加到我在https://www.keycloak.org/getting-started/getting-started-docker中找到的docker命令中3gtaxfhh5#
建立keycloak quarkus 版本的位置已经改变,所以这个方法对于任何大于16的主要版本都不起作用。但是下面的脚本可以。只需要将它保存为sh.文件并在您的终端执行它。通过启用最后一行,这也将直接启动Keycloak的示例。版本号可以改变,但这只针对M1芯片和版本17.0.0进行了测试。
nhaq1z216#
此问题有一个更新-AMD 64和ARM 64架构的映像现已提供,可在以下位置找到:https://quay.io/repository/keycloak/keycloak?tab=tags。
请参考Github中的讨论(https://github.com/keycloak/keycloak-containers/issues/341和https://github.com/keycloak/keycloak/issues/8825)。
jpfvwuh47#
我没有mac,但我最近才开始使用jboss/keycloak,并且已经能够让它启动。
基本上我所做的(假设安装了Docker):
可能必须使用
sudo
执行这些命令这将从Docker hub中提取jboss/keycloak映像,然后运行它,将容器中的端口8080公开给主机。它还使用.txt文件中的环境变量(该文件包含您希望将keycloak连接到以持久化数据的数据库端点的信息)。
如果你不指定
--env-file <text file>
,我相信keycloak会使用它的默认h2数据库,这不是最好的。我的本地jboss/keycloak指向我在AWS RDS环境中的postgres数据库,因此targetDB.txt的内容对我来说是:
如果我没记错的话,DB_DATABASE字段中的数据库名称一定已经存在了。所以你需要在运行docker run命令之前创建它。
在您执行了上面的docker run命令并且日志显示它正在启动之后,您应该能够在本地浏览器上访问keycloak管理控制台:
http://localhost:8080/auth
如果这是你第一次运行keycloak,你必须在登录之前创建一个master/admin用户。
要添加主用户,请运行以下命令(当您的keycloak已在运行时):
docker exec <container id or container name> /opt/jboss/keycloak/bin/add-user-keycloak.sh -u <USERNAME> -p <PASSWORD>
那么您需要重新启动您的keycloak容器:
docker restart <container id or container name>
同样,您可能必须使用
sudo
执行这些命令。完成后,返回到您的本地Web浏览器
http://localhost:8080/auth
,您现在可以访问登录页面,并使用您在上面创建的用户名和密码实际登录。dzjeubhm8#
jboss/keycloak目前还不支持arm 64。但是您可以在Docker hub上使用该映像:钥匙圈
https://hub.docker.com/r/mihaibob/keycloak
我用的这个和以前没区别。