iuh*_*chi 5 database oracle11g docker keycloak docker-compose
keycloak我已经使用数据库和以下配置成功配置了数据库SID。但是,我必须配置另一个数据库,该数据库没有SID但有一个service name文件docker-compose。我找不到配置数据库以keycloak使用它的方法service name。
在 docker-compose 文件中使用 SID 进行配置
- name: DB_VENDOR
value: ORACLE
- name: DB_ADDR
value: xxx.xx.xx.xxx
- name: DB_PORT
value: "1521"
- name: DB_DATABASE
value: sid_name
- name: DB_USER
value: db_user_name
- name: DB_PASSWORD
value: ******
Run Code Online (Sandbox Code Playgroud)
当我尝试使用service name而不是SID作为值时,DB_DATABASE它给出了以下错误。
Caused by: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
Run Code Online (Sandbox Code Playgroud)
感谢您为解决此问题提供的帮助。
先感谢您..
看来Keycloak的docker容器不支持它。但您可以构建自定义 docker 映像来修复它。请看一下文件change-database.cli,有一行:
connection-url=jdbc:oracle:thin:@${env.DB_ADDR:oracle}:${env.DB_PORT:1521}:${env.DB_DATABASE:XE}${env.JDBC_PARAMS:}
Run Code Online (Sandbox Code Playgroud)
您需要像这样的行(端口后面的斜杠而不是冒号,这是 Oracle 服务名称正常工作所必需的):
connection-url=jdbc:oracle:thin:@${env.DB_ADDR:oracle}:${env.DB_PORT:1521}/${env.DB_DATABASE:XE}${env.JDBC_PARAMS:}
Run Code Online (Sandbox Code Playgroud)
因此,更改此文件并构建自定义 Keycloak docker 映像。Dockerfile 可能类似于:
FROM jboss/keycloak:8.0.1
ADD /<path_on_your_system>/change-database.cli /opt/jboss/tools/cli/databases/oracle/change-database.cli
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |