/docker-apex-stack

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

Primary LanguageShellMIT LicenseMIT

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, but likely not with Windows. Sorry.

Getting Started

  1. Git clone this repository and set it as the working directory.

  2. Download the installer files:

  3. Place all four files in the sub-directory files.

  4. Create a new file that contains the required variables. Make a copy of settings.env.sample, e.g. mysettings.env, and modify as desired. The file should contain the following variables:

    ORACLE_SID=XE
    ORACLE_PDB=XEPDB1
    ORACLE_PWD=Oracle18
    APEX_ADMIN_EMAIL=myemail@domain.com
    APEX_ADMIN_PWD=Oracle__18
    APEX_PUBLIC_USER_PWD=Oracle18_1
    APEX_LISTENER_PWD=Oracle18_2
    APEX_REST_PUBLIC_USER_PWD=Oracle18_3
    ORDS_PUBLIC_USER_PWD=Oracle18_4
    INSTALL_FILE_APEX=apex_20.1.zip
    INSTALL_FILE_ORDS=ords-19.2.0.199.1647.zip
    INSTALL_FILE_JAVA=jdk-8u251-linux-x64.tar.gz
    DOCKER_ORDS_PORT=50080
    DOCKER_EM_PORT=55500
    DOCKER_DB_PORT=51521
    DB_VERSION=18.4.0
    DB_EDITION=xe
    DOCKER_NETWORK_NAME=das_network
    ALLOW_DB_PATCHING=N
    OML4R_SUPPORT=N
    REST_ENABLED_SQL=Y
    RTU_ENABLED=N
    SQLDEVWEB=Y
    • 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 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.
    • NEW Set the value of ALLOW_DB_PATCHING to Y to preserve files needed to successfully patch the database software with OPatch.
    • NEW 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.
    • NEW 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.
  5. 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
  6. Run the final script to create and run the container, where the container name is das (it is preferred that you execute a command using sudo before executing this script):

    $ bash 02-run.sh das mysettings.env

Using the sample settings, the following are accessible:

Port Application URL
50080 APEX http://localhost:50080
51521 Database N/A
55500 Enterprise Manager Express https://localhost:55500/em