Table of Contents
- Oracle APEX
- The Setup
- Oracle APEX Stack Up!
- Oracle APEX Stack Down!
- Opcional: Custom Setup
Oracle APEX is the most popular low-code development platform that enables you to build enterprise apps 20x faster with 100x less code. APEX lets developers quickly develop and deploy enterprise-grade apps that are highly secure out of the box.
It is easy to start to develop APEX apps; however, install and configure an APEX environment from scratch can be overwhelming for beginners.
This post will give you the simplicity you are looking to deploy an entire Oracle APEX dev/test environment in your laptop or the cloud using Docker.
Another day I will make a post about Oracle APEX In-depth but now let focus on deployment.
Before anything else, let’s see all the options we have to deploy Oracle APEX.
|Deployments||PROs||CONs||How to get started|
|apex free workspace||Easy to use to start testing APEX and to make a concept of proof in APEX.||- Not for commercial apps
- No direct access to the database
- Not all the features of a full APEX Development Environment
|Request a service here|
|Oracle APEX VM Image||Easy to have a full APEX Development in your laptop if you like VMs.||- VMs can be overwhelming
- VM is pre-configured and not tuned for all APEX capabilities
|Download the VM here|
|Oracle APEX On-Premises||The best option to consider if you want a full APEX Development Environment with all the features in your laptop or Cloud.||It’s not that easy to set up than other options||keep reading|
|Oracle Autonomous Database||The best option for Cloud hosting for APEX.||There are restrictions and Limitations for APEX with Autonomous Database, see the entire list here||Start your Oracle Cloud journey right away here|
Before starting, you need the following:
This guide requires docker-compose. If you don’t have it yet, take a look at the installation instructions and get it.
If you’re installing docker-compose on CoreOS, it needs to go into
At least 20G of disk space and 4G of memory is recommended.
An internet connection.
The full code from this guide is available on GitHub.
First of all, let download or clone the GitHub repository that accompanies this guide.
git clone https://github.com/reybis/oracle-apex-docker-stack.git
Due to licensing restrictions, I can’t host the software files in Github or elsewhere. As such, you’ll need to download them manually. Download the following files and store them in the respective software folder.
When you download the repo and all the software files, the directory structure needs to be like the following.
. .gitignore LICENSE.md README.md docker-compose.yml preview.gif ol7_ords ├── Dockerfile ├── README.md ├── scripts │ ├── healthcheck.sh │ ├── install_os_packages.sh │ ├── ords_software_installation.sh │ ├── server.xml │ └── start.sh └── software ├── apache-tomcat-9.0.37.tar.gz ├── apex_20.1.zip ├── OpenJDK11U-jdk_x64_linux_hotspot_11.0.8_10.tar.gz ├── ords-184.108.40.206.1804.zip ├── put_software_here.txt └── sqlcl-220.127.116.11.1557.zip ol7_19 ├── Dockerfile ├── README.md ├── scripts │ ├── healthcheck.sh │ └── start.sh └── software ├── apex_20.1.zip ├── LINUX.X64_193000_db_home.zip └── put_software_here.txt
Oracle APEX Stack Up!
With all the files in place, you can create the stack using the following command.
If you want to be in detached mode use
-d after the
docker-compose command creates the following services:
- [DB] - Oracle Enterprise Database with Oracle APEX installed
- [ORDS] - ORDS/Tomcat
- [PORTAINER] - Portainer to manage the stack
Some things to keep in mind:
- The database is created the first time the service DB is started, and also APEX is installed, which means it can take some time to be fully operational.
The DB service expose port
- The ORDS service depends on the DB service.
The ORDS service expose port
- The PORTAINER service doesn’t create the admin user, you will need to create it manually when access to
The PORTAINER service expose port
- A folder called volumes will be created to persist the database files and ORDS/Tomcat files.
docker-compose command succeeded, you can view the stack by accessing portainer at
localhost:9000 or by issuing the following command:
That’s it, now you have an entire Oracle APEX Environment in your machine, and you can access it at
Oracle APEX Stack Down!
If you are done with your work and want to stop the stack, you can do it with the following command:
Opcional: Custom Setup
If you like to change some environment settings like volumes, passwords, service names for the database, or many others, you can easily change it in the docker-compose file.
docker-compose.yml file and change the environment and volume sections on both services:
... environment: - DB_HOSTNAME=db - DB_PORT=1521 - DB_SERVICE=pdb1 - APEX_PUBLIC_USER_PASSWORD=ApexPassword1 - APEX_TABLESPACE=APEX - TEMP_TABLESPACE=TEMP - APEX_LISTENER_PASSWORD=ApexPassword1 - APEX_REST_PASSWORD=ApexPassword1 - PUBLIC_PASSWORD=ApexPassword1 - SYS_PASSWORD=SysPassword1 - KEYSTORE_PASSWORD=KeystorePassword1 volumes: - ./volumes/ol7_19_ords_tomcat:/u01/config/instance1 ...
... environment: - SYS_PASSWORD=SysPassword1 - PDB_PASSWORD=PdbPassword1 - APEX_EMAILemail@example.com - APEX_PASSWORD=ApexPassword1 volumes: - ./volumes/ol7_19_ords_db:/u02 ...
Bunch of ideas from Oracle-base docker files by Tim Hall.