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

时间:2020-02-10 09:02:18

标签: docker keycloak

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

443

我在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

我现在在my_realm.json文件中拥有该领域。然后,我使用docker compose启动一个新的密钥斗篷,以设置我的整个测试环境。我使用以下DockerFile构建新的Docker映像:

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

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 compose的日志输出表明它无法导入领域,并提出了一些有关验证客户端的建议。我没有添加任何客户端,所以这些是默认客户端。

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

欢迎任何指针!

1 个答案:

答案 0 :(得分:2)

升级到9.0.0可以为我修复。