docker - Keycloak Docker 导入用户
问题描述
抽象的
我需要在测试期间自动部署一个预配置的 keycloak 实例。
将用户导入 Keycloak 似乎是一个挑战
方法
我用预定义的 Realm/Users/Clients 创建了一个 Docker 容器
使用导出/导入功能,我可以轻松地用客户端重建一个 Realm,但不是用户。
需要明确的是,用户显示在 JSON 文件中。所以出口看起来是合法的。
绝望的尝试
我尝试了多种方法,包括但不限于:
ENV KEYCLOAK_IMPORT my-realm.json
在泊坞窗文件中=>Realm ✔ Clients ✔ Users ✖
没有创建用户,但在工作流程方面非常完美。它在 docker 构建期间运行。
docker exec ... action=import
通过=>导入Realm ✔ Clients ✔ Users ✖
docker exec -it <id> /opt/jboss/keycloak/bin/standalone.sh -Djboss.socket.binding.port-offset=100 -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.realmName=myrealm -Dkeycloak.migration.file=/tmp/my-realm.json
- 将
Strategy: OVERWRITE_EXISTING
用户和提供者的 设置为singleFile
。一口气拥有一切。 - 通过管理控制台手动导入,Realm ✖ Clients ✔ Users ✔
显然不适合自动化,但至少我的 JSON 用户是可导入的。
因此
是否有一些像这样的作弊码环境变量KEYCLOAK_FULL_IMPORT
可以在 Dockerfile 中一次性完成所有操作?
解决方案
我承认这是我的 Dockerfile 中的一个愚蠢的错字
简而言之,我从错误的文件中复制。正确的配置看起来像这样
FROM jboss/keycloak:latest
COPY my-realm.json /tmp/my-realm.json
ENV KEYCLOAK_USER admin
ENV KEYCLOAK_PASSWORD admin
ENV DB_VENDOR h2
ENV KEYCLOAK_IMPORT /tmp/my-realm.json
错字实际上不包括用户COPY some-realm.json /tmp/my-realm.json
。some-realm.json
推荐阅读
- python - 为什么内置模块不包含代码?
- python-3.x - 如何删除括号和单人床,应该在列表中使用python有花括号
- html - 有没有办法在 html 中自定义文字标记?或者如何使用其他元素来实现?
- javascript - 如何使用动态添加的按钮打开模式?
- php - SQL 查询在 PHP 中作为变量返回
- swift - 如何将 UIScrollView 添加到基于 xib 的视图
- python-3.x - 为什么不能从带有 selenium 的网页中提取 p 节点中的所有内容?
- python - python每n秒执行一次函数等待完成
- mysql - 我无法在 laravel 中使用 DB:table() 检索数据
- javascript - 如何有效地将数据存储在数组中?