This project provides a simple way to run Oracle APEX 24.2 using Docker Compose with an Oracle Free database and Oracle REST Data Services (ORDS).
First, download the file apex_24.2.zip from the Oracle APEX Downloads page.
Extract the contents into the ./apex folder of this project:
unzip apex_24.1.zip -d ./apexYour folder structure should now look like this:
.
├── apex
│ ├── apexins.sql
│ ├── builder
│ └── ...
├── docker-compose.yml
└── ...
Run the following command to start the Oracle database container:
docker-compose up -d oracle-dbThis will start the Oracle database (container name: oracle-db) and initialize the environment.
ords container.
After the oracle-db container is running, APEX will begin installing automatically into the Oracle database.
This process can take several minutes. You can monitor the logs using:
docker logs -f oracle-dbWait until the logs show a message similar to:
APEX installation completed successfully
Then create the admin user for your instance:
docker exec -it oracle-db bash
cd /opt/oracle/apex
sqlplus / as sysdba
ALTER SESSION SET CONTAINER=FREEPDB1;
@apxchpwd.sql
Only then proceed to the next step.
Once APEX has been installed, start the ORDS container:
docker-compose up -d ordsORDS (container name: ords) will now connect to the database and serve the APEX web interface.
Access Oracle APEX at:
http://localhost:8080/ords/
the apex instace admin will be:
- workspace: INTERNAL
- user: ADMIN
- password: MySecret123!
This setup uses Docker volumes for data storage:
oracle-data: stores database files for Oracle Freeords-config: stores ORDS configuration files
You can inspect or manage volumes with:
docker volume ls
docker volume inspect oracle-dataTo restart the containers:
docker-compose restart oracle-db
docker-compose restart ordsIf ORDS fails to start on the first run, this is expected. Just wait for APEX installation to finish and try again.
If you want to host your workspace on cloudflared, fisrt create a tunel pointing to the apex service on:
http://host.docker.internal:8080
Then on ords/config/global/settings.xml add the following entries:
<!-- Reverse proxy / Cloudflare -->
<entry key="standalone.proxy.forwarded">true</entry>
<!-- Security / HTTPS -->
<entry key="security.forceHTTPS">true</entry>
<!-- CORS -->
<entry key="security.allowedOrigins"> https://yoursite.com.br </entry>
<entry key="security.externalSessionTrustedOrigins"> https://yoursite.com.br </entry>
apex.selfhost.site
This project uses the official Oracle container images:
gvenzl/oracle-free:23.6-full- [
container-registry.oracle.com/database/ords:25.1.0+ custom ORDS setup]
Oracle APEX and ORDS are free to use under the Oracle Free Use Terms and Conditions.