Running Oracle SOA Suite on Docker - Part 3: Starting a database

Running Oracle SOA Suite on Docker - Part 3: Starting a database

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

Operating - installing and maintaining - Oracle Fusion Middleware, especially Oracle SOA Suite 12.2.1.4 is quite some work. Not only does installation itself consist of a number of steps, but each quarterly critical patch update also requires applying a number of patches and - especially in simple, single server environments quite some downtime.

This blog post series will cover how to run Oracle Fusion Middleware - especially Oracle SOA Suite on docker. The first post covered the high-level steps of manual installation, Docker and Kubernetes options and has pointers to the relevant Oracle certification documentation. The second post then described how - using OCI and Oracle Linux - a host to run docker containers can be setup up within minutes.

In this third post we will cover provisioning an Oracle Database instance to hold the meta data of Oracle SOA Suite.
In the 4th episode I'll investigate provisioning and configuring SOA Suite itself. While I'll first show those steps in a minimalistic way, to wrap up, the final episodes will cover patching and more advanced deployment options.

Signing into Oracle Container Registry

To use the pre-built containers provided by Oracle (and patched each quarter) navigate to https://container-registry.oracle.com/ and sign-in with your Oracle SSO credentials. Navigate to Auth Token there:


Creation of an Auth Token (Step 1)

Then click "Generate Secret Key" and safely store the generated key: It is not possible to reveal it again (but you can delete and create a new one).

Then go to your docker host and issue:

docker login container-registry.oracle.com

Provide your Oracle SSO Username as well as the token created:


Successful login to Oracle Container Registry

Downloading a database image

For testing purposes, it might be enough to use the latest "Free" Edition of the database; this is not supported though. Let's give it a try for this mini-instance nevertheless; you can switch to a "proper" Database Edition by just replacing "free" with "enterprise":

docker pull container-registry.oracle.com/database/free:latest

On OCI that command runs roughly 5 minutes. This is mainly for downloading 2 GB and extracting it to a 9 GB all-prepared image.

Starting the database

After having downloaded the latest image you can start with the following simple commands:

docker volume create mydbvol
docker network create soanet1
docker run --name myxe1 --network soanet1 -e ORACLE_PWD=Promatis1 -p 1521:1521 -v mydbvol:/opt/oracle/oradata --rm container-registry.oracle.com/database/free:latest

This first of all creates a persistent volume that will store the datafiles and will survive reboots of the environment. Furthermore, it creates a network that we will use late on to allow connecting to the database both from the host and from the SOA container. To make this as easy as possible we also expose port 1521 to the host. The entire process just takes 2 minutes:


Initial startup of the new database

Now you can connect to the DB e.g. using sql developer with the password provided as user SYSTEM; the service name is freepdb1.


Connection to newly started Oracle Database 23ai free

Summary

As shown starting an Oracle Database (e.g. 23 ai free) is a thing of 3 commands and completes in 5 to 10 minutes (network bandwidth permitting). In the next section of the blog, we'll see how we can run an Oracle SOA Suite using that Database.