gpt4 book ai didi

docker - Keycloak 无法导入在 docker 中运行的导出领域

转载 作者:行者123 更新时间:2023-12-04 18:37:48 27 4
gpt4 key购买 nike

我使用以下命令启动了我的 keycloak 服务:

docker run -d -p 8180:8080 -e KEYCLOAK_USER=admin -e \
KEYCLOAK_PASSWORD=admin -v $(pwd):/tmp --name kc \
jboss/keycloak:8.0.2

我在 keycloak 上创建了一个新领域,只给了它一个名字,没有别的。运行命令导出它:
docker exec -it kc keycloak/bin/standalone.sh \
-Djboss.socket.binding.port-offset=100 -Dkeycloak.migration.action=export \
-Dkeycloak.migration.provider=singleFile \
-Dkeycloak.migration.realmName=my_realm \
-Dkeycloak.migration.usersExportStrategy=REALM_FILE \
-Dkeycloak.migration.file=/tmp/my_realm.json

我现在在 my_realm.json 文件中有领域。然后我使用 docker compose 开始一个新的 keycloak 来设置我的整个测试环境。我用这个 DockerFile 构建了一个新的 docker 镜像:
FROM jboss/keycloak:8.0.2

COPY my_realm.json /tmp/my_realm.json

ENV KEYCLOAK_IMPORT /tmp/my_realm.json
ENV KEYCLOAK_MIGRATION_STRATEGY OVERWRITE_EXISTING

Docker 组成:
version: '3.4'
volumes:
postgres_kc_data:
driver: local
services:
kc_postgresql:
image: postgres:11.5
volumes:
- postgres_kc_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: kc
POSTGRES_USER: kc
POSTGRES_DB: kcdb
ports:
- 50009:5432
keycloak:
build: "./keycloak/" # ref to folder with above DockerFile
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
DB_VENDOR: POSTGRES
DB_ADDR: kc_postgresql
DB_DATABASE: kcdb
DB_SCHEMA: public
DB_USER: kc
DB_PASSWORD: kc
depends_on:
- kc_postgresql
ports:
- 8080:8080

运行 docker compose 的日志输出表明它无法导入领域,并建议有关验证客户端的内容。我没有添加客户端,所以这些是默认的。
08:39:46,713 WARN  [org.keycloak.services] (ServerService Thread Pool -- 67) KC-SERVICES0005: Unable to import realm Demo from file /tmp/my_realm.json.: java.lang.NullPointerException
at org.keycloak.keycloak-services@8.0.2//org.keycloak.url.DefaultHostnameProvider.resolveUri(DefaultHostnameProvider.java:83)
at org.keycloak.keycloak-services@8.0.2//org.keycloak.url.DefaultHostnameProvider.getScheme(DefaultHostnameProvider.java:38)
at org.keycloak.keycloak-server-spi@8.0.2//org.keycloak.models.KeycloakUriInfo.<init>(KeycloakUriInfo.java:46)
at org.keycloak.keycloak-services@8.0.2//org.keycloak.services.DefaultKeycloakContext.getUri(DefaultKeycloakContext.java:79)
at org.keycloak.keycloak-services@8.0.2//org.keycloak.services.util.ResolveRelative.resolveRootUrl(ResolveRelative.java:45)
at org.keycloak.keycloak-services@8.0.2//org.keycloak.validation.DefaultClientValidationProvider.validate(DefaultClientValidationProvider.java:44)
at org.keycloak.keycloak-services@8.0.2//org.keycloak.validation.DefaultClientValidationProvider.validate(DefaultClientValidationProvider.java:37)
at org.keycloak.keycloak-server-spi-private@8.0.2//org.keycloak.validation.ClientValidationUtil.validate(ClientValidationUtil.java:30)
at org.keycloak.keycloak-server-spi-private@8.0.2//org.keycloak.models.utils.RepresentationToModel.createClients(RepresentationToModel.java:1224)
at org.keycloak.keycloak-server-spi-private@8.0.2//org.keycloak.models.utils.RepresentationToModel.importRealm(RepresentationToModel.java:362)
at org.keycloak.keycloak-services@8.0.2//org.keycloak.services.managers.RealmManager.importRealm(RealmManager.java:506)


欢迎任何指点!

最佳答案

升级到 9.0.0 为我修复了它。

关于docker - Keycloak 无法导入在 docker 中运行的导出领域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60147033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com