Keycloak 18.0 和 Postgres 10.21

mar*_*rcg 3 keycloak keycloak-services

我正在尝试使用 postgres 10.21 运行 Keycloak 18

这是我的码头工人组成

version: "3.5"

services:

  keycloaksvc:
    image: quay.io/keycloak/keycloak:18.0
    user: '1000:1000'
    container_name: "testkc"
    environment:
      - DB_VENDOR=postgres
      - DB_ADDR=postgressvc
      - DB_DATABASE=keycloak
      - DB_PORT=5432
      - DB_SCHEMA=public
      - DB_USER=KcUser
      - DB_PASSWORD=KcPass
      - KC_HOSTNAME=localhost
      - ROOT_LOGLEVEL=DEBUG
      - PROXY_ADDRESS_FORWARDING=true
      - REDIRECT_SOCKET=proxy-https
      - KEYCLOAK_LOGLEVEL=DEBUG
      - KEYCLOAK_ADMIN=admin
      - KEYCLOAK_ADMIN_PASSWORD=testing

    volumes:
       - ./ssldir:/etc/x509/https
       - "/etc/timezone:/etc/timezone:ro"
       - "/etc/localtime:/etc/localtime:ro"
       - "/etc/passwd:/etc/passwd:ro"
       - ./kcthemes:/opt/keycloak/themes

    entrypoint: /opt/keycloak/bin/kc.sh start --auto-build  --hostname-strict-https=false  --http-relative-path=/auth --features=token-exchange  --https-certificate-file=/etc/x509/https/tls.crt --https-certificate-key-file=/etc/x509/https/tls.key
    network_mode: "host"
    depends_on:
      - postgressvc



  postgressvc:
    image: postgres:10.21-alpine
    user: '1000:1000'
    container_name: "kc_postgres"
    environment:
      - POSTGRES_DB=keycloak
      - POSTGRES_USER=KcUser
      - POSTGRES_PASSWORD=KcPass
    volumes:
      - ./pgdta:/var/lib/postgresql/data
      - "/etc/timezone:/etc/timezone:ro"
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/passwd:/etc/passwd:ro"
    network_mode: "host"
Run Code Online (Sandbox Code Playgroud)

它运行良好,我可以访问管理控制台 https://localhost:8443/auth/admin

我还可以添加新的领域和用户。但是我在 postgres 中没有看到任何数据。如果我在 docker-compose 文件中进行更改并重新启动,所有领域和用户都会丢失

完全相同的 postgres 设置可以很好地处理图像:jboss/keycloak:16.1.1

我对 keycloak 18 缺少什么设置?

小智 5

我也面临与 keycloak v19.0.0 相同的问题。它正在内存中存储数据。但通过以下配置可以将数据存储在 postgres 中。

keycloak:
    container_name: keycloak
    environment:
      KC_DB: postgres
      KC_DB_URL: jdbc:postgresql://localhost:5432/keycloak
      KC_DB_USERNAME: postgres
      KC_DB_PASSWORD: user
      KEYCLOAK_ADMIN: admin
      KEYCLOAK_ADMIN_PASSWORD: admin
      KC_HOSTNAME_STRICT: false
      KC_EDGE: proxy
    ports:
      - 8080:8080
    image: quay.io/keycloak/keycloak:19.0.0
    network_mode: host
    depends_on:
      - postgres
    command:
      - start-dev --auto-build
Run Code Online (Sandbox Code Playgroud)