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

Wojciech SowaWojciech Sowa
2 min read

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:

  1. The ords-developer image is now outdated—ORDS and APEX are no longer included. Oracle suggests using the updated ords image, which now supports APEX. More details are provided later in this document.

  2. You need to download the APEX zip file yourself to install APEX during the ORDS setup.

Prerequisites

My laptop setup is as follows:

  1. Windows 11

  2. Docker Desktop for Windows - version 4.43.2

💡
I will be running APEX 24.2.0 and ORDS 25.2.0.

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.

0
Subscribe to my newsletter

Read articles from Wojciech Sowa directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Wojciech Sowa
Wojciech Sowa