Easy Setup for Oracle APEX on Docker Using Oracle Container Registry for 2025

Introduction
This article is a short but useful guide for anyone who wants to use Docker images of Oracle Database and ORDS. I talked about this before, but mid-2025 brings some important updates. Read my blog post to stay informed.
Why You Must Be Updated?
Here is a list of important facts to know when using the latest images:
The
ords-developer
image is now outdated—ORDS and APEX are no longer included. Oracle suggests using the updatedords
image, which now supports APEX. More details are provided later in this document.You need to download the APEX zip file yourself to install APEX during the ORDS setup.
Prerequisites
My laptop setup is as follows:
Windows 11
Docker Desktop for Windows - version 4.43.2
Step by Step Guide
Build Folder Structure And docker-compose.yml file
Create the folder structure as shown on the screen. Note that my dev
folder also includes the docker-compose.yml
file with my complete configuration.
Download APEX and Extract Files From ZIP
After extracting the zip file with APEX files, place all the files from the /apex
folder into the dev/apex
folder in the sample folder structure. The ORDS container will look there and start the APEX installation process.
Prepare docker-compose.yml file
Here is my setup for use with Docker Compose:
services:
db:
image: container-registry.oracle.com/database/free:23.8.0.0
hostname: database
ports:
- 1522:1521
environment:
- ORACLE_PWD=pwd
- DBHOST=database
volumes:
- ./oracle_oradata/:/opt/oracle/oradata
ords:
image: container-registry.oracle.com/database/ords:25.2.0
ports:
- 8081:8080
environment:
- DBHOST=database
- DBPORT=1521
- DBSERVICENAME=FREEPDB1
- ORACLE_PWD=pwd
volumes:
- ./ords_config/:/etc/ords/config
- ./apex/:/opt/oracle/apex
depends_on:
db:
condition: service_healthy
Note that the ORDS container will not start until the database container setup is complete.
Run The Setup and Finish The Installation
Open your command line, go to the dev
folder, and run the following:
docker-compose -f ./docker-compose.yml up
After setting up the database, the ords
container will show these logs:
For me, it took about 5 minutes to get APEX ready to use. In my setup, you can find the ORDS landing page at http://localhost:8081/
.
I couldn't find a default password for the INTERNAL workspace. However, you can log in as the container database user SYS as SYSDBA
and run the apxchpwd.sql
script to change the INTERNAL password. After that, you can access this workspace, create your own, and start working with APEX apps.
Subscribe to my newsletter
Read articles from Wojciech Sowa directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by