3.5. 使用自定义 JDBC 驱动程序


要连接到任何数据库,该数据库的 JDBC 驱动程序必须存在,红帽单点登录。目前,镜像中唯一可用的 JDBC 驱动程序是 PostgreSQL JDBC 驱动程序。对于任何其他数据库,您需要使用自定义 JDBC 驱动程序和 CLI 脚本扩展红帽单点登录镜像,以注册并设置连接属性。以下步骤演示了如何进行此操作,并将 MariaDB 驱动程序作为一个示例进行。相应地更新其他数据库驱动程序的示例。

流程

  1. 创建一个空目录。
  2. 将 JDBC 驱动程序二进制文件下载到此目录。
  3. 在此目录中,创建包含以下内容的新 Dockerfile 文件。对于其他数据库,将 mariadb-java-client-2.5.4.jar 替换为对应驱动程序的文件名:

    FROM rh-sso-7/sso76-openshift-rhel8:latest
    
    COPY sso-extensions.cli /opt/eap/extensions/
    COPY mariadb-java-client-2.5.4.jar /opt/eap/extensions/jdbc-driver.jar
    Copy to Clipboard Toggle word wrap
  4. 在此目录中,创建包含以下内容的 sso-extensions.cli 文件:根据部署需求更新它中的值:

    batch
    
    set DB_DRIVER_NAME=mariadb
    set DB_USERNAME=username
    set DB_PASSWORD=password
    set DB_DRIVER=org.mariadb.jdbc.Driver
    set DB_XA_DRIVER=org.mariadb.jdbc.MariaDbDataSource
    set DB_JDBC_URL=jdbc:mariadb://jdbc-host/keycloak
    set DB_EAP_MODULE=org.mariadb
    
    set FILE=/opt/eap/extensions/jdbc-driver.jar
    
    module add --name=$DB_EAP_MODULE --resources=$FILE --dependencies=javax.api,javax.resource.api
    /subsystem=datasources/jdbc-driver=$DB_DRIVER_NAME:add( \
      driver-name=$DB_DRIVER_NAME, \
      driver-module-name=$DB_EAP_MODULE, \
      driver-class-name=$DB_DRIVER, \
      driver-xa-datasource-class-name=$DB_XA_DRIVER \
    )
    /subsystem=datasources/data-source=KeycloakDS:remove()
    /subsystem=datasources/data-source=KeycloakDS:add( \
      jndi-name=java:jboss/datasources/KeycloakDS, \
      enabled=true, \
      use-java-context=true, \
      connection-url=$DB_JDBC_URL, \
      driver-name=$DB_DRIVER_NAME, \
      user-name=$DB_USERNAME, \
      password=$DB_PASSWORD \
    )
    
    run-batch
    Copy to Clipboard Toggle word wrap
  5. 在这个目录中,通过键入以下命令来构建您的镜像,将 project/name:tag 替换为任意名称。可以使用 Docker 而不是 podman

    $ podman build -t docker-registry-default/project/name:tag .
    Copy to Clipboard Toggle word wrap
  6. 构建完成后,将镜像推送到 OpenShift 用于部署镜像的 registry。详情请参阅 OpenShift 指南
  7. 如果要将此镜像与您在上一步中构建的自定义 JDBC 驱动程序一起使用,且现有红帽单点登录 OpenShift DeploymentConfig 之前由一些 Red Hat Single Sign-On OpenShift 模板创建,您需要修补 DeploymentConfig 定义。输入以下命令:

    $ oc patch dc/sso --type=json -p '[{"op": "replace", "path": "/spec/triggers/0/imageChangeParams/from/name", "value": "sso76-openshift-rhel8-image-with-custom-jdbc-driver:latest"}]'
    "sso" patched
    Copy to Clipboard Toggle word wrap

    此命令假定红帽单点登录镜像与自定义 JDBC 驱动程序的镜像流名称和标签组合为"sso76-openshift-rhel8-image-with-custom-jdbc-driver:latest"。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat