首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keycloak Postgres对接失败

Keycloak Postgres对接失败
EN

Stack Overflow用户
提问于 2022-11-01 09:06:14
回答 2查看 83关注 0票数 0

我试图通过使用keycloak来获取keycloak实例,而我使用的撰写文件下面是我从

https://github.com/keycloak/keycloak-containers/blob/main/docker-compose-examples/keycloak-postgres.yml

代码语言:javascript
复制
# keycloak dependencies

  postgres-keycloak:
    image: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: keycloak
      POSTGRES_USER: keycloak
      POSTGRES_PASSWORD: password
  keycloak:
    image: quay.io/keycloak/keycloak:legacy
    environment:
      DB_VENDOR: POSTGRES
      DB_ADDR: postgres
      DB_DATABASE: keycloak
      DB_USER: keycloak
      DB_SCHEMA: public
      DB_PASSWORD: password
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
      # 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:
      - 8082:8082
    depends_on:
      - postgres-keycloak


volumes:
  postgres_data:
    driver: local

当我运行这个文件时,我得到连接错误,如下所示:

代码语言:javascript
复制
backend_services-keycloak-1           | Caused by: javax.resource.ResourceException: IJ031084: Unable to create connection
backend_services-keycloak-1           | Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "keycloak"
backend_services-keycloak-1           | 08:53:53,533 FATAL [org.keycloak.services] (ServerService Thread Pool -- 68) Error during startup: java.lang.RuntimeException: Failed to connect to database
backend_services-keycloak-1           | Caused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/KeycloakDS
backend_services-keycloak-1           | 08:53:54,449 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "metrics")]): java.lang.NullPointerException
backend_services-keycloak-1           | 08:53:54,460 ERROR [org.jboss.as.server] (ServerService Thread Pool -- 45) WFLYSRV0022: Deploy of deployment "keycloak-server.war" was rolled back with no failure message
EN

回答 2

Stack Overflow用户

发布于 2022-11-01 09:57:26

这个docker-compose.yml将是可行的。您做错了两个地方(DB_ADDR和端口转发)

代码语言:javascript
复制
version: '3'

services:
  postgres-keycloak:
    image: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: keycloak
      POSTGRES_USER: keycloak
      POSTGRES_PASSWORD: password
  keycloak:
    image: quay.io/keycloak/keycloak:legacy
    environment:
      DB_VENDOR: POSTGRES
      DB_ADDR: postgres-keycloak
      DB_DATABASE: keycloak
      DB_USER: keycloak
      DB_SCHEMA: public
      DB_PASSWORD: password
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
      # 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:
      - 8082:8080
    depends_on:
      - postgres-keycloak

volumes:
  postgres_data:
    driver: local

并打开URL

代码语言:javascript
复制
http://localhost:8082/auth/

点击这里,然后凭据admin/admin (id /密码)

票数 0
EN

Stack Overflow用户

发布于 2022-11-01 10:03:36

如果你愿意的话,你可以尝试一下,名为test的应用程序,

数据库登录是,keycloak:password

键盘斗篷管理员登录名是:root:root

这可以通过localhost:8080的web浏览器访问。

代码语言:javascript
复制
version: "3.8"
name: test
services:
    keycloak:
        image: jboss/keycloak:15.0.2
        environment:
            DB_VENDOR: POSTGRES
            DB_ADDR: postgres
            DB_DATABASE: keycloak
            DB_USER: keycloak
            DB_SCHEMA: public
            DB_PASSWORD: password
            KEYCLOAK_USER: root
            KEYCLOAK_PASSWORD: root
            KEYCLOAK_HOSTNAME: keycloak
            # 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   
        networks:
            - test
            
    postgres:
        image: postgres
        volumes:
            - postgres_data:/var/lib/postgresql/data
        environment:
            POSTGRES_DB: keycloak
            POSTGRES_USER: keycloak
            POSTGRES_PASSWORD: password
        networks:
            - test    
            
            
        
volumes:
  postgres_data:
      driver: local  
      

networks:
  test:
    driver: bridge
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74273624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档