3.5. 使用自定义 JDBC 驱动程序
要连接到任何数据库,该数据库的 JDBC 驱动程序必须存在,红帽单点登录。目前,镜像中唯一可用的 JDBC 驱动程序是 PostgreSQL JDBC 驱动程序。对于任何其他数据库,您需要使用自定义 JDBC 驱动程序和 CLI 脚本扩展红帽单点登录镜像,以注册并设置连接属性。以下步骤演示了如何进行此操作,并将 MariaDB 驱动程序作为一个示例进行。相应地更新其他数据库驱动程序的示例。
流程
- 创建一个空目录。
- 将 JDBC 驱动程序二进制文件下载到此目录。
在此目录中,创建包含以下内容的新
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
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 Copied! Toggle word wrap Toggle overflow 在此目录中,创建包含以下内容的
sso-extensions.cli
文件:根据部署需求更新它中的值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这个目录中,通过键入以下命令来构建您的镜像,将
project/name:tag
替换为任意名称。可以使用
Docker 而不是podman
。podman build -t docker-registry-default/project/name:tag .
$ podman build -t docker-registry-default/project/name:tag .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 构建完成后,将镜像推送到 OpenShift 用于部署镜像的 registry。详情请参阅 OpenShift 指南。
如果要将此镜像与您在上一步中构建的自定义 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"}]'
$ 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 Copied! Toggle word wrap Toggle overflow 此命令假定红帽单点登录镜像与自定义 JDBC 驱动程序的镜像流名称和标签组合为"sso76-openshift-rhel8-image-with-custom-jdbc-driver:latest"。