M1 mac无法运行jboss/keycloak docker映像

idfiyjo8  于 2022-11-08  发布在  Mac
关注(0)|答案(8)|浏览(242)

一周前切换到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)

尝试了所有的图像版本,所有的行为都一样。有没有人设法运行这个图像没有问题?谢谢

9bfwbjaz

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。

  1. 12.0.4使用密码来验证密码,并将其发送给用户。

tyu7yeag

tyu7yeag2#

使用此映像,我现在可以启动keycloak。https://hub.docker.com/r/wizzn/keycloak

k2arahey

k2arahey3#

对于Keycloak 16、docker 20.10和docker-compose 1.29,此图像可以完美地工作:https://hub.docker.com/r/sleighzy/keycloak-正如@zakjan所建议的。
类似以下的服务:

keycloak:
    image: sleighzy/keycloak
    environment:
      ... your Keycloak config

应该足够启动和运行了。

piok6c0g

piok6c0g4#

我用的是m1,我运行了这个,它起作用了。

docker run --platform=linux/amd64 -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:17.0.0 start-dev

我只是将--platform=linux/amd64添加到我在https://www.keycloak.org/getting-started/getting-started-docker中找到的docker命令中

3gtaxfhh

3gtaxfhh5#

建立keycloak quarkus 版本的位置已经改变,所以这个方法对于任何大于16的主要版本都不起作用。但是下面的脚本可以。只需要将它保存为sh.文件并在您的终端执行它。通过启用最后一行,这也将直接启动Keycloak的示例。版本号可以改变,但这只针对M1芯片和版本17.0.0进行了测试。

VERSION=17.0.0 # set version here

cd /tmp
git clone git@github.com:keycloak/keycloak.git
cd keycloak/quarkus/container
git checkout $VERSION
docker build -t "quarkus-keycloak:$VERSION" .

# docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin "quarkus-keycloak:$VERSION" start-dev --http-relative-path /auth
nhaq1z21

nhaq1z216#

此问题有一个更新-AMD 64和ARM 64架构的映像现已提供,可在以下位置找到:https://quay.io/repository/keycloak/keycloak?tab=tags
请参考Github中的讨论(https://github.com/keycloak/keycloak-containers/issues/341https://github.com/keycloak/keycloak/issues/8825)。

jpfvwuh4

jpfvwuh47#

我没有mac,但我最近才开始使用jboss/keycloak,并且已经能够让它启动。
基本上我所做的(假设安装了Docker):

docker pull jboss/keycloak:16.1.0 
docker run --env-file targetDB.txt -p 8080:8080 jboss/keycloak:16.1.0

可能必须使用sudo执行这些命令
这将从Docker hub中提取jboss/keycloak映像,然后运行它,将容器中的端口8080公开给主机。它还使用.txt文件中的环境变量(该文件包含您希望将keycloak连接到以持久化数据的数据库端点的信息)。
如果你不指定--env-file <text file>,我相信keycloak会使用它的默认h2数据库,这不是最好的。
我的本地jboss/keycloak指向我在AWS RDS环境中的postgres数据库,因此targetDB.txt的内容对我来说是:

DB_VENDOR=postgres
DB_ADDR=<my postgres aws rds endpoint>:5432
DB_DATABASE=<name of the database>
DB_USER=<db username to connect to postgres instance>
DB_PASSWORD=<password associated with db username to connect>

如果我没记错的话,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,您现在可以访问登录页面,并使用您在上面创建的用户名和密码实际登录。

dzjeubhm

dzjeubhm8#

jboss/keycloak目前还不支持arm 64。但是您可以在Docker hub上使用该映像:钥匙圈
https://hub.docker.com/r/mihaibob/keycloak
我用的这个和以前没区别。

相关问题