I already wrote about Docker and OBIEE in Docker in relation to my OBIEE Docker image I published on GitHub.
As it isn’t always obvious to get started with it, mainly if aren’t familiar with Docker, I decided to write this post which will cover from A to Z how you can get OBIEE running Docker covering: building the images, running the DB, start / stop OBIEE.
All you will need for it is a host (a PC running linux, a server, a VM) with Docker installed.
The process is covered with screenshots for each step and has been based on Oracle Database 12c R1 Docker container using the image provided on https://github.com/oracle/docker-images/tree/master/OracleDatabase and OBIEE 220.127.116.11 using the image provided on https://github.com/gianniceresa/docker-images/tree/master/OracleBIEE.
You can freely use another version of OBIEE (18.104.22.168.0, 22.214.171.124.0 or 126.96.36.199.0) or database (make sure it’s supported by the selected OBIEE version looking at the relative certification matrix.
You can also use a different version of Java if wanted (again check the certification matrix). If you decide to use a different Java make sure you update the Checksum.md5 file with the new name and checksum and the filename inside the Dockerfile (“INSTALL_FILE_JDK” variable).
The Oracle Database Docker image hosted on GitHub can change at any time, so the parameters required by the container can be different than the ones used here. Have a look at the GitHub page to read through the various parameters.
More options available
There are various parameters accepted by both the OBIEE and database Docker images, you find examples and list of variables on GitHub.
Getting the binaries
Building the Docker images for Oracle Database 12c R1 and OBIEE
Run a database container and an OBIEE container
Stop the OBIEE container and the database container
Restart the containers: content is persisted, nothing is lost
That’s it, you now have a Docker based OBIEE environment. You can run multiple containers in parallel, run multiple versions. Once you are done or you destroyed an environment while trying things just remove the container (“docker rm”) and start a new one.
If you just need the piece of code :
# - Build database image
git clone https://github.com/oracle/docker-images.git
# ToDo: copy binaries into ./188.8.131.52
./buildDockerImage.sh -v 184.108.40.206 -e
# - Build OBIEE image
git clone https://github.com/gianniceresa/docker-images.git
# ToDo: copy binaries into ./220.127.116.11.0
./buildDockerImage.sh -v 18.104.22.168.0
# ToDo: delete ./db and ./bi and all their content (not needed anymore)
# - Run containers
docker run -d -p 1521:1521 --stop-timeout 600 --name database oracle/database:22.214.171.124-ee
docker logs -f database
# Ctrl+C when the message "DATABASE IS READY TO USE!" is visible
docker exec database ./setPassword.sh Admin123
# replace 192.168.120.81 by your docker host address
docker run -d -P \
--name obiee_126.96.36.199.0 \
--stop-timeout 600 \
-e "BI_CONFIG_RCU_DBSTRING=192.168.120.81:1521:orclpdb1" \
-e "BI_CONFIG_RCU_PWD=Admin123" \
docker logs -f obiee_188.8.131.52.0
# Ctrl+C when the components status "RUNNING" is visible
docker port obiee_184.108.40.206.0