Skip to content

Utility scripts for creating an Oracle Application Express stack as a Docker container.

License

Notifications You must be signed in to change notification settings

fuzziebrain/docker-apex-stack

Repository files navigation

Build an APEX Stack with Docker

For background information on this repository, please read this blog post.

Prerequisites

  • Installed the following:
    • Git
    • Curl
    • Docker (of course)

IMPORTANT

Build and execution has been tested in Linux only. It should work in Mac OS and Windows with Windows Subsystem for Linux 2.

Getting Started

  1. Git clone this repository and set it as the working directory.
  2. Download the installer files:
    • The required Oracle Database installation files from OTN (supports versions up to 21.3.0 including Express Edition, as of September 22, 2021). Note: For Oracle Database 21c XE, you are no longer required to download the binaries (see issue #39).
    • Oracle Application Express (supports versions up 22.2 as of January 01, 2023)
    • Oracle REST Data Services (supports versions up to 23.1 as of April 01, 2023)
  3. For releases after 0.6.0, either choose to use the binaries from OpenJDK, download a licensed Java runtime, or the free to use Java 17 from Oracle. Please refer to the additonal notes section below for details about the INSTALL_FILE_JAVA parameter.
  4. Place all installer files in the sub-directory files.
  5. Create a file that contains the required environment variables for your build. Please refer to the additonal notes below for more information about the various parameters that can be set. Included in this repository are two examples or templates that you can use:
  6. Run the first script to grab the latest Docker images from Oracle and build the Oracle Database image. The script takes one parameter, the environment filename (mysettings.env):
    $ bash 01-build.sh mysettings.env
  7. Run the final script to create and run the container, where the container name is das:
    $ bash 02-run.sh das mysettings.env

Quick Start

Martin suggested, so here it is! Now included is the the quickstart.sh script. Simply:

  1. Execute the script.
  2. Enter your email address for the APEX instance administrator.
  3. Optionally, enter a preferred container name.
  4. If all's good, note down your container name and password.
  5. Enter Y to continue.
  6. Wait till there is minimal or no activity in the script then go to http://localhost:8080/ords/apex.

If you are new to APEX, then I highly recommend checking out some of the learning resources here.

$ ./quickstart.sh
Enter an email address for your APEX administrator (required): apexdev@example.com
Container name (leave empty to have one generated for you): apexiscool
##### Important Information #####
Your Docker container name is: apexiscool
Your password for the database and APEX internal workspace is: donotcommit

We are now ready to build the Docker image and deploy your container.
Type "Y" to continue or CTRL-C to exit: y

Note

Should you forget to save your password, you can find it in the generated settings file along with any other details about the container. It is named after your container, e.g. apexiscool.env.

Additional Notes About the Settings File

  • Specify the Docker network to attach to using the parameter DOCKER_NETWORK_NAME. The run script will check if the network exists, and if not, create it.
  • The parameter RTU_ENABLED has been introduced. It is experimental and may not work. It allows users to create containers that can be used to create an image from using Docker commit. Set the value to "Y" if this ability is required.
  • Use the FILES_DIR parameter to specify the local path to all the required installation files, e.g. /path/to/my/downloads.
  • Set the value of ALLOW_DB_PATCHING to Y to preserve files needed to successfully patch the database software with OPatch.
  • As of December 5, 2019, Oracle Machine Learning (previously known as Oracle Advanced Analytics) option is now included with all editions of Oracle Database 12c R2 and later, including 18c Express Edition (XE). Use the OML4R_SUPPORT parameter to install database support for running embedded R scripts. At the moment, this option is only valid for 18c or later.
  • SQL Developer Web is now availablel with ORDS version 19.4. This feature is enabled by default. To turn it off, set the environment variable SQLDEVWEB to N. The REST-enabled SQL feature can be managed by the variable REST_ENABLED_SQL, but note that this value is ignored if SQL Developer Web is activated. For builds with earlier ORDS versions, the added configuration properties are safely ignored.
  • DATABASEAPI parameter added to enable Database API support for ORDS 19.x and later.
  • The variable INSTALL_FILE_JAVA accepts the following values:
    • java17 (default)
    • openjdk11
    • The filename of Java runtime tarball that you can download from here.
  • Using the sample settings, the following are accessible:
    Port Application URL
    8080 APEX http://localhost:8080
    1521 Database N/A