【问题标题】:How to load initial realm in keycloak server with docker?如何使用 docker 在 keycloak 服务器中加载初始领域?
【发布时间】:2022-06-23 23:53:17
【问题描述】:

我正在启动一个keycloak 服务器并希望让服务器导入一个默认领域(如启动)。但即使这样也行不通:

/tmp/example-realm.json:

{
  "realm": "springboot-quickstart",
  "enabled": true,
  "sslRequired": "external",
  "registrationAllowed": true,
  "requiredCredentials": [ "password" ],
  "clients": [
    {
      "clientId": "service-springboot",
      "enabled": true,
      "bearerOnly": true,
      "protocol": "openid-connect"
    }
  ]
}

开始于:

docker run -p 8180:8080
  -e KEYCLOAK_ADMIN=admin
  -e KEYCLOAK_ADMIN_PASSWORD=admin
  -e KEYCLOAK_IMPORT=/tmp/example-realm.json
  -v /tmp/example-realm.json:/tmp/example-realm.json
  quay.io/keycloak/keycloak:17.0.0 start-dev

结果:只有master 领域存在,但我导入的领域不见了。

相反,当我进入 keycloak 的管理页面并手动导入该文件时,client "springboot-quickstart" 已成功导入我的master 领域。所以json文件一般应该没问题。

那么为什么这在初始启动时不起作用?

【问题讨论】:

  • 这很奇怪。它与我们使用的环境变量相同(尽管我们的 keycloak 映像是 jboss/keycloak)是否有任何错误或警告日志?
  • 没有错误或失败日志。我在这里没有使用任何特殊的东西,只是上面写的默认 docker 图像,带有确切的 json 文件。

标签: docker keycloak


【解决方案1】:

这似乎是 17.0.0 中的一个错误,但将在 17.0.1 中修复。

this issue

【讨论】:

  • 这被接受为答案,但 17.0.1 已经出局,这似乎不像 OP 所说的那样工作。你能描述一下这是什么修复或如何在 17.0.1 中进行修复吗?链接的问题也没有解决这个问题,除非您指的是他们从那里链接到的另一个问题,该问题表明它将在 18.0.0 中修复。
【解决方案2】:

我可以按如下方式修复它: -e JAVA_OPTS="-Dkeycloak.import=/tmp/example-realm.json"

但我还是想知道为什么-e KEYCLOAK_IMPORT 不起作用。

【讨论】:

    【解决方案3】:

    使用带有 --import-realms 标志的 keycloak 18.0.1 我能够将我的 json 放入数据/导入文件夹中,它似乎可以工作:

    docker run -p 8180:8080
      -e KEYCLOAK_ADMIN=admin
      -e KEYCLOAK_ADMIN_PASSWORD=admin
      -v /tmp/example-realm.json:/opt/keycloak/data/import/example-realm.json
      quay.io/keycloak/keycloak start-dev --import-realm
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 2023-01-05
      • 2020-08-27
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多