Oracle APEX Stack
- Oracle APEX
- Prerequisites
- The Setup
- Oracle APEX Stack Up!
- Oracle APEX Stack Down!
- Optional: Custom Setup
- Credits
Oracle APEX
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 |
Prerequisites
Before starting, you need the following:
-
Docker Engine
You can install Docker Desktop on your laptop here
If you are using Linux, you can install Docker Engine here -
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
/opt/bin
instead of/usr/local/bin
. At least 20G of disk space and 4G of memory is recommended.
An internet connection.
The Setup
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.
- apex_20.1.zip
- LINUX.X64_193000_db_home.zip
- apache-tomcat-9.0.37.tar.gz
- OpenJDK11U-jdk_x64_linux_hotspot_11.0.8_10.tar.gz
- ords-20.2.0.178.1804.zip
- sqlcl-20.2.0.174.1557.zip
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-20.2.0.178.1804.zip
├── put_software_here.txt
└── sqlcl-20.2.0.174.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.
docker-compose up
If you want to be in detached mode use -d
after the up
command
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
1521
. The ORDS service depends on the DB service.
The ORDS service expose port
8080
and8443
.
-
The PORTAINER service doesn't create the admin user, you will need to create it manually when access to
localhost:9000
The PORTAINER service expose port
9000
. A folder called volumes will be created to persist the database files and ORDS/Tomcat files.
After the docker-compose
command succeeded, you can view the stack by accessing portainer at localhost:9000
or by issuing the following command:
docker-compose ps
That's it, now you have an entire Oracle APEX Environment in your machine, and you can access it at localhost:8080
.
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:
docker-compose down
Optional: 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.
Open the docker-compose.yml
file and change the environment and volume sections on both services:
ORDS
...
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
...
DB
...
environment:
- SYS_PASSWORD=SysPassword1
- PDB_PASSWORD=PdbPassword1
- APEX_EMAIL=me@example.com
- APEX_PASSWORD=ApexPassword1
volumes:
- ./volumes/ol7_19_ords_db:/u02
...
Credits
Bunch of ideas from Oracle-base docker files by Tim Hall.
Top comments (2)
Hello @reybis Ceballos, I'm new to APEX and containerized applications and I'm trying to run Oracle APEX stack on docker and i've done alle steps exactly but i got errors when launching the stack.
I have different (newest) version of all of the software and I've updated the docker files
ENV
as written input_software_here.txt
The problem is that apex_db and apex_ords containers does failure to start and when I try to start them manually I get Errors:
This is how containers look like on portainer in browser:
Could you give me tips checking some configurations and get the error fixed?
Here is a list of the versions of the softwares which I've installed: