I have APEX 5.1 installed in a docker container, when APEX 18.1 was out I thought about creating a new image, but I have customer applications running on APEX 5.1. Then I saw the idea of Dimitri Gielis about cloning the database and installing APEX on the new environment. What you will be needing is your existing Oracle 12c image (you can download it from my docker hub).
- Oracle 12 image
- ORDS 18.1
Clone the database just like Dimitri Gielis is suggesting in his blog.
Create ORDS image from Oracle “docker-images-master” (you can download it from Git)
— copy apex18.1 to docker
docker cp apex_181..zip oracle12c:/temp/apex_18.1.zip
— shell to enter the container
docker exec -it oracle bash -c “source /home/oracle/.bashrc; bash”
— install APEX inside the docker container (login as sysdba)
@apexins SYSAUX SYSAUX TEMP /i/
— Run the apex_rest_config command
@apex_rest_config.sql
— before creating the ORDS container make sure that the needed users have no password expired.
alter user APEX_PUBLIC_USER identified by oracle;
alter user APEX_LISTENER identified by oracle;
alter user APEX_REST identified by oracle;
once APEX installation is done, create a new ORDS container from the image.
— create ords container
docker run -t -i \
–name ords \
–network=oracle_network \
-e DB_HOSTNAME=oracle \
-e DB_PORT=1521 \
-e DB_SERVICENAME=ORCLPDB1 \
-e APEX_PUBLIC_USER_PASS=oracle \
-e APEX_LISTENER_PASS=oracle \
-e APEX_REST_PASS=oracle \
-e ORDS_PASS=oracle \
-e SYS_PASS=oracle \
–volume /Volumes/HDD/docker/apex/18.1/images:/usr/local/tomcat/webapps/i \
-p 8081:8080 \
ords18:3.0.12
I have the old ORDS3 running on 8080, for ORDS18 I’m using 8081.
You are done, You have both APEX versions running side by side. now you can connect to APEX18.1 on localhost:8081/ords
If you have any question, just drop me a message.