You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地使用Bitnami镜像启动Keycloak实例失败求助

解决Bitnami Keycloak容器启动时无法解析postgresql主机的问题

问题原因

Bitnami的Keycloak镜像默认依赖PostgreSQL数据库,且默认配置里数据库主机名为postgresql。你单独启动Keycloak容器时,既没有在同一Docker网络中启动对应的PostgreSQL服务,也没指定自定义数据库连接参数,导致容器无法找到这个主机。

解决方案

方案1:用Docker Compose同时启动Keycloak和PostgreSQL(推荐)

创建docker-compose.yml文件,内容如下:

version: '3'
services:
  postgresql:
    image: bitnami/postgresql:15
    environment:
      - POSTGRESQL_USERNAME=bn_keycloak
      - POSTGRESQL_PASSWORD=bitnami
      - POSTGRESQL_DATABASE=bitnami_keycloak
    volumes:
      - postgresql_data:/bitnami/postgresql
  keycloak:
    image: bitnami/keycloak:20.0.5-debian-11-r1
    environment:
      - KEYCLOAK_DATABASE_HOST=postgresql
      - KEYCLOAK_DATABASE_USER=bn_keycloak
      - KEYCLOAK_DATABASE_PASSWORD=bitnami
      - KEYCLOAK_DATABASE_NAME=bitnami_keycloak
      - KEYCLOAK_ADMIN_USER=admin
      - KEYCLOAK_ADMIN_PASSWORD=admin
    ports:
      - '8080:8080'
    depends_on:
      - postgresql
volumes:
  postgresql_data:
    driver: local

执行启动命令:

docker-compose up -d

这种方式会自动创建同一网络下的PostgreSQL服务,Keycloak能直接解析到postgresql主机。

方案2:指定自定义数据库参数单独启动Keycloak

如果你已有可用的PostgreSQL(本地或远程均可),启动容器时添加数据库相关环境变量:

docker run --name keycloak-local \
  -e KEYCLOAK_DATABASE_HOST=你的数据库IP或主机名 \
  -e KEYCLOAK_DATABASE_PORT=5432 \
  -e KEYCLOAK_DATABASE_USER=你的数据库用户名 \
  -e KEYCLOAK_DATABASE_PASSWORD=你的数据库密码 \
  -e KEYCLOAK_DATABASE_NAME=你的数据库名 \
  -e KEYCLOAK_ADMIN_USER=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -p 8080:8080 \
  bitnami/keycloak:20.0.5-debian-11-r1

替换命令中你的数据库IP或主机名等参数为实际值即可。

内容的提问来源于stack exchange,提问作者Kaushik Bhave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:30:12