如何使用 docker 在 keycloak 服务器中加载初始领域?

How to load initial realm in keycloak server with docker?

我正在启动一个 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 的管理页面并手动导入该文件时,客户端“springboot-quickstart”成功导入到我的master领域.所以 json 文件一般来说应该没问题。

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

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

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

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

this issue