camunda/keycloak此Docker镜像提供基于bitnami/keycloak或Quay.io官方Keycloak镜像的通用Keycloak设置。还包含:
本仓库提供三种主要镜像变体:
⚠️ 关于Bitnami镜像的重要说明 由于Bitnami目录变更,自2025年8月28日起,新的Bitnami容器镜像不再发布到Docker Hub。本仓库现在使用
docker.io/bitnamilegacy仓库的镜像以继续提供支持。
用户应考虑迁移到Quay-based镜像,这些镜像得到积极维护,推荐用于生产环境。
docker.io/camunda/keycloak:quay-* 和 latest)[推荐]基于Quay.io官方Keycloak镜像,遵循官方Keycloak配置模式,适合偏好上游容器约定的用户。这些镜像标签使用quay-前缀,latest标签指向最新的Quay-based版本,可在Docker Hub公开获取。
✅ 推荐:这些镜像积极维护,推荐用于生产环境。
docker.io/camunda/keycloak:quay-optimized-*)Quay-based镜像的预构建配置变体,具有优化的启动时间和Camunda兼容设置:
/auth基础路径,实现与Camunda无缝集成docker.io/camunda/keycloak:bitnami-*)基于Bitnami Legacy Keycloak镜像,使用Bitnami的环境变量约定,适合熟悉Bitnami生态系统的用户。标签使用bitnami-前缀,可在Docker Hub公开获取。为保持向后兼容,这些镜像也提供不带前缀的版本。
注意:这些镜像基于bitnamilegacy仓库,Bitnami不再提供更新。建议生产环境迁移到Quay-based镜像。
registry.camunda.cloud/keycloak-ee/keycloak:bitnami-ee-*)基于Bitnami企业版的高级企业级镜像,标签使用bitnami-ee-前缀,仅对授权客户开放,可从Camunda企业 registry获取。为保持向后兼容,这些镜像在专用registry中也提供不带前缀的版本。
所有变体均包含相同的AWS JDBC包装器和Camunda Identity主题功能。
📘 所有Keycloak相关问题,请参考官方Keycloak文档:[***]
🐳🚀 要在容器环境中运行Keycloak,请遵循以下步骤:
确保您的机器已安装Docker。
启动Bitnami-based镜像:
bashdocker run --name mykeycloak -p 8443:8443 \ -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=change_me \ docker.io/camunda/keycloak:bitnami-26
启动Quay-based镜像:
bashdocker run --name mykeycloak -p 8443:8443 \ -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=change_me \ docker.io/camunda/keycloak:quay-26 \ start --hostname=localhost
Keycloak将以生产模式启动,使用安全HTTPS通信,可通过https://localhost:8443访问。
生产环境强烈推荐使用Quay-based镜像(camunda/keycloak:quay-*),因为:
Bitnami-based镜像仅建议用于:
浏览Docker Hub上Camunda Keycloak Docker镜像的可用标签:
quay-前缀Bitnami-based镜像:
:<基础镜像版本>-<yyyy-mm-dd>-<迭代>:例如 24-2024-03-04-004 🏷️:<基础镜像版本>:例如 24.0.1-0:<Keycloak主版本>:例如 24Quay-based镜像(带quay-前缀):
:quay-<基础镜像版本>-<yyyy-mm-dd>-<迭代>:例如 quay-24-2024-03-04-004 🏷️:quay-<基础镜像版本>:例如 quay-24.0.1:quay-<Keycloak主版本>:例如 quay-24:quay-optimized-<基础镜像版本>-<yyyy-mm-dd>-<迭代>:例如 quay-optimized-24-2024-03-04-004 🏷️:quay-optimized-<基础镜像版本>:例如 quay-optimized-24.0.1:quay-optimized-<Keycloak主版本>:例如 quay-optimized-24:quay-optimized-latest:最新优化Quay-based镜像:latest:对应最新稳定标准(非优化)Quay-based镜像Bitnami Keycloak容器镜像配置详见hub.docker.com/bitnami/keycloak。
从Keycloak 26.3.2开始,以下遗留环境变量已弃用,改用原生KC_*变量:
| 遗留变量(26.3.2前) | 原生变量(26.3.3+) |
|---|---|
KEYCLOAK_ADMIN_USER | KC_BOOTSTRAP_ADMIN_USERNAME |
KEYCLOAK_BOOTSTRAP_ADMIN_PASSWORD | KC_BOOTSTRAP_ADMIN_PASSWORD |
KEYCLOAK_CACHE_TYPE | KC_CACHE |
KEYCLOAK_ENABLE_STATISTICS | KC_METRICS_ENABLED |
KEYCLOAK_ENABLE_HEALTH_ENDPOINTS | KC_HEALTH_ENABLED |
KEYCLOAK_HOSTNAME | KC_HOSTNAME |
KEYCLOAK_HOSTNAME_STRICT | KC_HOSTNAME_STRICT |
KEYCLOAK_LOG_LEVEL | KC_LOG_LEVEL |
KEYCLOAK_PROXY_HEADERS | KC_PROXY_HEADERS |
更多环境变量信息详见Bitnami Keycloak镜像。
官方Keycloak容器配置文档:keycloak.org/server/containers。
Quay-based镜像提供两种子类型:
标准镜像(quay-<version>)
优化镜像(quay-optimized-<version>)
/auth基础路径jdbc:aws-wrapper:postgresql://... URLCamunda路径配置(--http-relative-path=/auth)
/auth路径预配置用于与Camunda Platform 8无缝集成,Camunda期望Keycloak在此基础路径上可用。此配置:
/auth前缀(例如 /auth/realms/master)XA事务禁用(--transaction-xa-enabled=false)
优化镜像中禁用XA事务的原因:
构建参数和配置差异的技术细节详见DEVELOPER.md。
从Keycloak 21及更高版本开始,可使用镜像中包含的AWS Advanced JDBC包装器启用IRSA(服务账户IAM角色)。详见Keycloak文档。
Kubernetes中使用IRSA,配置以下环境变量:
yaml- name: KEYCLOAK_EXTRA_ARGS value: "--db-driver=software.amazon.jdbc.Driver --transaction-xa-enabled=false --log-level=INFO,software.amazon.jdbc:INFO" - name: KEYCLOAK_JDBC_PARAMS value: "wrapperPlugins=iam" - name: KEYCLOAK_JDBC_DRIVER value: "aws-wrapper:postgresql" - name: KEYCLOAK_DATABASE_USER value: db-user-name - name: KEYCLOAK_DATABASE_NAME value: db-name - name: KEYCLOAK_DATABASE_HOST value: db-host - name: KEYCLOAK_DATABASE_PORT value: 5432 - name: KEYCLOAK_ENABLE_STATISTICS value: "true" - name: KEYCLOAK_ENABLE_HEALTH_ENDPOINTS value: "true"
Kubernetes中使用IRSA,配置以下环境变量:
标准镜像(quay-<version>)
yaml- name: KC_DB value: postgres - name: KC_DB_DRIVER value: software.amazon.jdbc.Driver - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://db-host:5432/db-name?wrapperPlugins=iam" - name: KC_DB_USERNAME value: db-user-name - name: KC_TRANSACTION_XA_ENABLED value: "false" - name: KC_HEALTH_ENABLED value: "true" - name: KC_METRICS_ENABLED value: "true"
优化镜像(quay-optimized-<version>)
优化镜像预配置AWS JDBC包装器驱动,必须使用aws-wrapper URL格式,即使非IRSA部署:
yaml# IRSA(IAM认证) - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://db-host:5432/db-name?wrapperPlugins=iam" - name: KC_DB_USERNAME value: db-user-name # IRSA无需KC_DB_PASSWORD # 传统用户名/密码认证 - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://db-host:5432/db-name" - name: KC_DB_USERNAME value: db-user-name - name: KC_DB_PASSWORD value: db-password # 注意:数据库驱动、健康/指标和XA设置已预配置
不要忘记将部署/statefulset的serviceAccountName设置为带有IRSA注解的服务账户。
要在Helm Chart中使用此镜像,可使用bitnami/keycloak并更新镜像及添加必要环境变量:
Bitnami-based镜像 ⚠️ [遗留 - 考虑迁移]
⚠️ 迁移建议:新部署建议使用Keycloak Operator配合Quay-based镜像,提供更好的长期支持并遵循Keycloak最佳实践。
现有Bitnami部署可使用bitnami/keycloak Helm Chart:
yamlimage: docker.io/camunda/keycloak:bitnami-26 extraEnvVars: - name: KEYCLOAK_EXTRA_ARGS value: "--db-driver=software.amazon.jdbc.Driver --transaction-xa-enabled=false --log-level=INFO,software.amazon.jdbc:INFO" - name: KEYCLOAK_JDBC_PARAMS value: "wrapperPlugins=iam" - name: KEYCLOAK_JDBC_DRIVER value: "aws-wrapper:postgresql" externalDatabase: host: "aurora.rds.your.domain" port: 5432 user: keycloak database: keycloak global: security: # 以下参数因[***] # 不会降低安全性,仅允许Bitnami镜像的分支(如本镜像)被Chart部署 allowInsecureImages: true
生产环境Quay-based镜像推荐使用官方Keycloak Operator,提供更好的生命周期管理并遵循Keycloak最佳实践:
📋 Keycloak Operator安装:[***]
Operator允许声明式部署Keycloak实例并提供适当的配置管理。以下是使用Camunda镜像的Keycloak自定义资源示例:
yamlapiVersion: k8s.keycloak.org/v2alpha1 kind: Keycloak metadata: name: keycloak namespace: keycloak spec: image: docker.io/camunda/keycloak:quay-optimized-26 instances: 3 db: vendor: postgres host: aurora.rds.your.domain port: 5432 database: keycloak usernameSecret: name: keycloak-db-secret key: username # IRSA场景,省略passwordSecret以使用IAM认证 # IRSA支持仅适用于优化镜像 unsupported: podTemplate: spec: serviceAccountName: keycloak-service-account containers: - name: keycloak env: - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://aurora.rds.your.domain:5432/keycloak?wrapperPlugins=iam"
⚠️ Keycloak Operator重要说明
使用标准镜像(
quay-<version>或latest)配合Key


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务