Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:oracle_ords_apex_podman_23aifree

Podman Container mit Ords und APEX für eine Oracle 23ai Podman Umgebung installieren und verwenden um Oracle Vector Search unter APEX zu testen

Aufgabe

In einer schon bestehenden Podman Oracle 23ai Umgebung soll noch zusätzlich der ORDS und APEX aufgesetzt werden. Das ganze dient als Testumgebung für das Vector Search Feature der 23ai.

Wenn noch keine Datenbank vorhanden ist, lässt sich am elegantesten das auch komplett wie hier beschrieben über einen „Podman compose file“ aufsetzen ⇒ https://blogs.oracle.com/developers/post/fastpath-to-developing-with-oracle-application-express-and-multilingual-engine .

Wir wollen aber hier die bestehende Umgebung erweitern und setzte den ORDS/APEX Container neben der bestehenden 23ai Container auf.

Ablauf:

Am Ende sollten wir eine 24.4.0 - ORDS 24.4.0 and APEX 24.1.0 Umgebung zur Verfügung haben.

Die folgende Version mit dem latest Container (21.03.2025) lag am Ende vor : ORDS = 24.4.0.r3451601 - APEX 24.1.0

Für den Vector Search Einsatz ist das leider aber nicht die richtige Version, in 24.2 gibt es dazu ein eine native Unterstützung ⇒ siehe https://blogs.oracle.com/apex/post/nextgen-data-search-integrating-ai-vector-search-into-search-configurations


Die Umgebung vorbereiten

Unsere Umgebung steht bereists komplett zur Verfügung, siehe Oracle Datenbank 23ai Free Edition über ein Container Image unter Linux 9 als Testumgebung für AI Vector Search verwenden.

Dort ist podman schon konfiguriert und auf der Maschine wird APEX noch zusätzlich aktiviert.

Auch gibt es dort mit der richtigen UID bereits eine User oracle im Host system, das ist wichtig für das spätere Mappen der Konfigurationsdateien im /etc Verzeichnis.

Notwendige Verzeichnisse anlegen:

ORDS Konfiguration:

mkdir -p /etc/ords/config
 
# im ersten Schritt auch other Schreibrechte geben
# Vermutlich ist es der User Oracle aus dem Container der hier die Konfig anleget?
 
chmod -R o+rw /etc/ords

Secrets Verzeichnis:

mkdir /opt/oracle/variables
chown -R oracle:oinstall /opt/oracle/variables
 
#auch hier erstmal etwas mehr rechte
chmod  o+rw /opt/oracle/variables

Container Image herunterladen

Als User root:

podman pull container-registry.oracle.com/database/ords-developer:latest

Welche Images stehen nun zur Verfügung:

podman images
 
REPOSITORY                                             TAG         IMAGE ID      CREATED       SIZE
container-registry.oracle.com/database/free            latest      ac5f0e5fb443  6 weeks ago   9.55 GB
container-registry.oracle.com/database/ords-developer  latest      bd4868caeffd  2 months ago  2.22 GB

Die Zugangsdaten für den Zugriff auf die Datenbank hinterlegen

Ziel ist es APEX in der PDB zu installieren, mal sehen ob das klappt, damit ist der Connect String sys@//10.10.10.118:1521/freepdb1 in meiner Umgebung

Als user oracle:

su - oracle
 
cd /opt/oracle/variables
 
echo 'CONN_STRING=sys/oracle@10.10.10.118:1521/freepdb1' > conn_string.txt

Aus der Doku:

Die Datei conn_string.txt ist obligatorisch und muss in das Verzeichnis /opt/oracle/variables/ des Containers eingebunden werden.

Die CONN_STRING-Variable in dieser Datei muss das folgende Format haben: CONN_STRING=benutzer/kennwort@hostname:port/service_name

Die Datei conn_string.txt wird beim Start des Containers gelöscht.

Die Angaben zur Datenbankverbindung werden nicht in den Umgebungsvariablen des Containers gespeichert.

Die angegebenen Datenbankzugangsdaten müssen SYSDBA-Zugriff haben, da dies das Datenbankkonto ist, das für die Installation/Upgrade der APEX- und ORDS-Datenbankkomponenten verwendet wird.


Container starten

Container beim Ersten Zugriff starten und konfigurieren:

podman run                                                  \
           --name ords24                                    \
           --network=host                                   \ 
           -v /opt/oracle/variables:/opt/oracle/variables   \
           -v /etc/ords/config:/etc/ords/config             \         
           container-registry.oracle.com/database/ords-developer:latest   
 
 
INFO : This container will start a service running ORDS 24.4.0 and APEX 24.1.0.
INFO : CONN_STRING has been found in the container variables file.
INFO : Database connection established.
INFO : Apex is not installed on your database.
INFO : Installing APEX on your DB please be patient.
INFO : You can check the logs by running the command below in a new terminal window:
        docker exec -it podman23ai.pipperr.local tail -f /tmp/install_container.log
WARN : APEX can be installed remotely on PDBs, If you want to install it on a CDB,
       install it directly on the Database and not remotely.

( mit der –rm Option aus der Doku wird der Container jedes mal gelöscht und neu initialisiert ,mit -p 8181:8181 \ wird der Port gemappt, allerdings arbeiten wir ja mit der –network Option um gleich auch von außen auf den Container zugreifen zu können ).

Aus der Doku: Wenn auf der Datenbank bereits eine frühere Version des APEX installiert ist, wird sie durch den Container auf die im Container verhandene Version aktualisiert. Aber nur wenn die Hauptversionen übereinstimmt. Sollten die Hauptversionen der APEX-Versionen nicht übereinstimmen, wird der Container aus Kompatibilitätsgründen den Upgradeprozeß abbrechen.

mit dem Parameter „-v etc/ords/config:/etc/ords/config“ wird die Config im Filesystem des Hosts angelegt, der erste Pfad ist das Host Laufwerk, der zweite das Mapping aus dem Container. Das klappt aber nur wenn der Container noch leer ist und frisch heruntergeladen wird! Wurde die -v Option nicht beim ersten Mal verwendet, verbleiben die Datendateien im Container und es wird nicht umgemappt! Der Container muss dann neu heruntergeladen und initialisiert werden!

Hat das mit dem Mount geklappt?

podman inspect ords24  --format '{{.Mounts}}'
 
[{bind  /opt/oracle/variables /opt/oracle/variables   [rbind] true rprivate} 
 {bind  /etc/ords/config /etc/ords/config             [rbind] true rprivate}
]
 
#Im Container Image prüfen
 
podman exec -it ords24  bash
 
 bash-4.4$ cd /etc/ords/config 
 bash-4.4$ ls

Nach dem Start dauert es etwas, Logfile der APEX Installation in einer zweiten Session auswerten:

podman  exec -it ords24 tail -f /tmp/install_container.log

Was wurde erzeugt:

# Was läuft gerade
podman ps
CONTAINER ID  IMAGE                                                         COMMAND               CREATED        STATUS               PORTS       NAMES
08107bf58fd7  container-registry.oracle.com/database/free:latest            /bin/bash -c $ORA...  6 days ago     Up 4 days (healthy)  1521/tcp    freeDB
910bc2ffe218  container-registry.oracle.com/database/ords-developer:latest  /bin/sh -c bash /...  2 minutes ago  Up 2 minutes         8181/tcp    ords24
 
 
# Configuration des zuletzt gestarteten Images
podman inspect -l
..
"HostConfig": {
               "Binds": [
                    "/opt/oracle/variables:/opt/oracle/variables:rw,rprivate,rbind",
                    "/etc/ords/config:/etc/ords/config:rw,rprivate,rbind"
               ],
 
...
 
# Letzte Logs anzeigen
podman logs -l
 
# Was läuft im Container
podman top -l

Falls nicht gestartet kann auch nachgestartet werden mit:

podman start ords24

Liegt die Konfiguration wirklich im Host Verzeichnis:

cd /etc/ords/config
ls -la
total 0
drwxr-xrwx 4 root   root     37 Mar 21 10:18 .
drwxr-xrwx 3 root   root     20 Mar 21 09:47 ..
 
drwxr-xr-x 3 oracle oinstall 21 Mar 21 10:18 databases
drwxr-xr-x 2 oracle oinstall 26 Mar 21 10:18 global

Konfiguration gehört den User oracle!

Ist auf den Port etwas zu sehen?

ss -tulpn
 
 
Netid           State            Recv-Q            Send-Q                       Local Address:Port                        Peer Address:Port           Process
...
 
tcp             LISTEN           0                 50                                       *:8181                                   *:*               users:(("java",pid=154478,fd=8))

Aufruf über http://10.10.10.118:8181 zeigt die ORDS Start Seite.

Anmelden am Internal Worksspace mit:

  • - Workspace: internal
  • - User: ADMIN
  • - Password: Welcome_1

Damit kann nun der erste Workspace angelegt werden und die Tests mit APEX Können beginnen.


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
"Autor: Gunther Pipperr"
prog/oracle_ords_apex_podman_23aifree.txt · Zuletzt geändert: 2025/05/12 13:57 von gpipperr