首页 > 解决方案 > Keycoak:创建 Docker 容器时导入领域

问题描述

我有一个适用于 Keycloak 和 Postgres 的 docker-compose 配置,效果很好。现在,我已经在 real-export.json 中导出了配置,以便使用这些配置重新启动 Keycloak。不幸的是,Keycloak 容器无法按预期工作。

原始码头工人撰写:

version: '3.1'
services:
  postgres:
      image: postgres
      volumes:
        - ~/docker/volumes/keycloak-db:/var/lib/postgresql/data
      environment:
        POSTGRES_DB: keycloak
        POSTGRES_USER: keycloak
        POSTGRES_PASSWORD: ${KEYCLOAK_DB_PASS}
  keycloak:
      image: mihaibob/keycloak:14.0.0
      environment:
        DB_VENDOR: POSTGRES
        DB_ADDR: postgres
        DB_DATABASE: keycloak
        DB_USER: keycloak
        DB_SCHEMA: public
        DB_PASSWORD: ${KEYCLOAK_DB_PASS}
        KEYCLOAK_USER: admin
        KEYCLOAK_PASSWORD: ${KEYCLOAK_PASS}
        # Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn't be used in production without knowledge. It is highly recommended that you read the PostgreSQL JDBC driver documentation in order to use it.
        #JDBC_PARAMS: "ssl=true"
      ports:
        - 8080:8080
      depends_on:
        - postgres

新的 docker-compose 导入配置:

version: '3.1'
services:

   postgres:
      image: postgres
      container_name: postgres
      environment:
        POSTGRES_DB: keycloak
        POSTGRES_USER: keycloak
        POSTGRES_PASSWORD: ${KEYCLOAK_DB_PASS}

   keycloak:
      image: mihaibob/keycloak:14.0.0
      volumes:
        - ./realm-export.json:/tmp/realm-export.json
      environment:
        DB_VENDOR: POSTGRES
        DB_ADDR: postgres
        DB_DATABASE: keycloak
        DB_USER: keycloak
        DB_SCHEMA: public
        DB_PASSWORD: ${KEYCLOAK_DB_PASS}
        KEYCLOAK_USER: admin
        KEYCLOAK_PASSWORD: ${KEYCLOAK_PASS}
        KEYCLOAK_MIGRATION_ACTION: IMPORT
        KEYCLOAK_IMPORT: /tmp/realm-export.json
        # Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn't be used in production without knowledge. It is highly recommended that you read the PostgreSQL JDBC driver documentation in order to use it.
        #JDBC_PARAMS: "ssl=true"
      ports:
        - 9080:8080
      depends_on:
        - postgres

Keycloak 容器以以下日志终止:

OpenJDK Server VM warning: No monotonic clock was available - timed services may be adversely affected if the time-of-day clock changes


Added 'admin' to '/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json', restart server to load user


-b 0.0.0.0


=========================================================================



  Using PostgreSQL database



=========================================================================

感谢每一个想法。

标签: dockerkeycloak

解决方案


尝试使用绝对路径进行卷挂载


推荐阅读