Oracle Business Intelligence Docker镜像构建与部署指南
前言
在当今DevOps和容器化技术盛行的时代,将Oracle Business Intelligence(OBI)部署在Docker容器中已成为企业快速搭建BI环境的有效方案。本文将详细介绍如何基于Oracle官方提供的Docker镜像构建方案,完成Oracle BI平台的容器化部署。
环境准备
数据库要求
Oracle BI需要连接到一个运行中的Oracle数据库实例,用于存储中间层Schema。数据库可以是:
- 运行在Docker容器中的Oracle数据库
- 物理机或虚拟机上的Oracle数据库实例
重要注意事项:
- 如果使用CDB/PDB架构的Oracle数据库,必须使用PDB创建Schema,不支持直接在CDB中创建
- 数据库版本需与BI版本兼容(12.1或12.2企业版)
镜像构建流程
Oracle BI Docker镜像的构建是一个分层过程,需要依次构建以下基础镜像:
1. 构建Oracle Server JRE镜像
步骤:
- 下载Oracle Server JRE二进制文件到
OracleJava/java-8
目录 - 执行构建命令:
cd OracleJava/java-8 docker build -t oracle/serverjre:8 .
2. 构建Oracle FMW Infrastructure镜像
步骤:
- 下载FMW Infrastructure二进制文件到
OracleFMWInfrastructure/dockerfiles/12.2.1.3
目录 - 如有需要,设置代理环境变量:
export http_proxy=myproxy.example.com:80 export https_proxy=myproxy.example.com:80 export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
- 执行构建命令:
cd OracleFMWInfrastructure/dockerfiles ./buildDockerImage.sh -v 12.2.1.3
3. 构建Oracle BI镜像
步骤:
- 下载Oracle BI 12.2.1.3.0的两个Linux x86-64位二进制文件到
OracleBI/dockerfiles/12.2.1.3
目录 - 如有需要,设置代理环境变量(同上)
- 执行构建命令:
cd OracleBI/dockerfiles ./buildDockerImage.sh -v 12.2.1.3
容器部署实践
基本启动命令
启动容器时需要提供以下必需环境变量:
docker run -it -p 9500:9500 -p 9502:9502 \
-e ADMIN_USERNAME=weblogic \
-e ADMIN_PASSWORD=<admin_password> \
-e DB_HOST=database \
-e DB_PORT=1521 \
-e DB_SERVICE=ORCLPDB1 \
-e DB_USERNAME=sys \
-e DB_PASSWORD=<db_password> \
-e SCHEMA_PREFIX=DEV \
-e SCHEMA_PASSWORD=<schema_password> \
oracle/biplatform:12.2.1.3
关键端口说明:
- 9500:WebLogic AdminServer端口
- 9502:BI JEE应用托管端口
- 9508:OBI集群控制器端口
- 9514:OBI Server系统组件端口
数据持久化方案
默认情况下,容器内的数据会随容器删除而丢失。要实现数据持久化,可以将主机目录挂载为数据卷:
mkdir -p /scratch/bi && chmod 777 /scratch/bi
docker run -v /scratch/bi:/u01/oracle/user_projects ...
与数据库容器协同工作
建议使用Docker用户定义网络连接BI容器和数据库容器:
-
创建网络:
docker network create -d bridge bi_net
-
启动数据库容器:
docker run --name database --network=bi_net oracle/database:12.1.0.2-ee
-
启动BI容器:
docker run --name bi --network=bi_net -e DB_HOST=database oracle/biplatform:12.2.1.3
高级配置技巧
使用Docker Compose编排
在docker-compose.yml中可配置容器启动顺序和等待时间:
environment:
- DB_WAIT_TIMEOUT=240
通过文件传递配置
支持通过挂载文件方式传递敏感配置:
/run/secrets/admin.txt
:管理员凭据/run/secrets/db.txt
:数据库凭据/run/secrets/schema.txt
:Schema密码/run/secrets/config.txt
:完整配置
文件格式为key=value
键值对。
常见问题解决方案
-
节点管理器监听问题:
- 确保重启容器时使用相同主机名:
docker run --hostname original_hostname
- 确保重启容器时使用相同主机名:
-
ODBC驱动兼容性问题:
- 对于12.2.1.2.0版本,在数据库服务器的
sqlnet.ora
中添加:SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
- 对于12.2.1.2.0版本,在数据库服务器的
-
R安装失败:
- 先安装make工具:
yum install -y make
- 以root身份运行安装脚本:
docker exec -it -u root bi bash RInstaller.sh installpackages
- 先安装make工具:
版本兼容性说明
- 12.2.1.2.0:基于FMW Infrastructure 12.2.1.2.0构建
- 12.2.1.3.0:基于FMW Infrastructure 12.2.1.3.0构建
- 12.2.1.4.0:同样基于FMW Infrastructure 12.2.1.3.0构建
构建时只需修改版本号即可切换不同版本。
法律声明
使用Oracle Business Intelligence Docker镜像前,必须从Oracle官网下载相应二进制文件并接受许可协议。本项目中提供的构建脚本遵循Universal Permissive License v 1.0许可。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考