This blog post about running APEX 21.1 in Docker was orignally published in my personal blog via blogger.

Last week I posted a screenshot on Twitter of the new Oracle APEX 21.1 running in my docker environment on Ubuntu Linux. I was asked to give a futher view of installing the new version. Here it comes right now.

To make things easier I searched the internet for a template of a docker project and I found the git repository from fuzzlebrain fuzziebrain/docker-apex-stack: Utility scripts for creating an Oracle Application Express stack as a Docker container. (github.com).

In general the process clones the official Oracle docker images and installs the needed software that is configured in a configuration file.

Step 1 is cloning the git repository to my local file system.

Prerequisites of software packages needed for this docker image:
    Install the following things in your host:

  •   Git
  •   Curl
  •   Docker (of course)

Step 2 is getting the required the installation files and placing them in the subfolder of the downloaded repository

  • Oracle Database 18c XE or any of the required installation files from OTN (supports versions up to 19.3 as of April 25, 2019)
  • Oracle Application Express (supports versions up 21.1 as of May 12, 2021)
  • Oracle REST Data Services (supports versions up to 20.4.3 as of May 12, 2021) or ords-21.1.1.116.2032.zip
  • Java Development Kit SE 8 (IMPORTANT: Please download the tarball, e.g. jdk-8u291-linux-x64.tar.gz.)

You can even try to build your docker images with different versions of ORDS or APEX. 
After executing the first step for several times I changed the first script 01-build.sh a little bit and removed the line where the official docker images are pulled. Why ? Because they are placed in the folder dockerfiles after the first run and pulled every time the build process is started. A little bit too much downloads…

The second „issue“ I faced is in the used 18c XE database Dockerfile as the install file is downloaded every time docker creation runs, But it should use the rpm file from the files folder.
old: INSTALL_FILE_1=“https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-18c-1.0-1.x86_64.rpm“ \
new: INSTALL_FILE_1=“oracle-database-xe-18c-1.0-1.x86_64.rpm“ \

Step 3 is to configure my settings for the creation process in the file mysettings.env. Make a copy of settings.env.sample, e.g. mysettings.env, and modify as desired. 

mysettings.env  should contain the following variables:

You can change many parameters in there e.g. the oracle SID, the versions, the ports and the passwords for Oracle, APEX and ORDS. When you are done the DB creation process can be started.


Step 4 is to run the first script to grab the latest Docker images from Oracle (if not disabled) and build the Oracle Database image. The script takes one parameter, the environment filename (mysettings.env).

Step 5 is to run the final script to create and run the container, where the container name is of your choice e.g. das.

When the script is ready or when I restart my previous built container again I can login to the APEX internal workspace http://localhost:50080/ 
the initital password for the ADMIN user can be retrieved from mysettings.env

Using the sample settings, the following URLs are accessible:

The APEX About Dialog:

After login ypu are able to create other workspaces in APEX or applications if you like.
That is pretty easy to use and play with APEX in Docker.

Still another approach without docker is to claim for a workspace on Oracle APEX ( https://apex.oracle.com/de/ ) where Oracle has upgraded APEX to v21.1, too.

One thing that changed in APEX 21 is the location of the sample apps. Now they are hosted on github https://oracle.github.io/apex/ and not shipped with the APEX installation anymore.


Cheers Holger

Alle Beiträge von Holger Lehmann

Schreibe einen Kommentar