Category: Docker

May 12th, 2019 by Mathias

Everyone should have their own local development environment. No matter if you write Java and that just means IDE and JDG, or if you work with databases. Not having it reduces your learning a lot. I have yet to meet a really sharp database expert who does not have a local personal environment. It also goes the other way around, you can usually guess if a person has it or not.

Yes, you can get a database by just downloading a VM or use or hack in a database your employer provides. But to be able to extend and really do all the things that should be possible, you need your very own.

I have before made one documented setup available to friends and colleagues. However with docker and automation being in vogue it was time to make the jump from VirtualBox and just a textual description to a scripted setup for docker.

Fortunately Gerald Venzl has done the heavy lifting and led work to get both Oracle XE updated as well as getting docker files for all kinds of good things published. Using that I got the database and Java installed in different docker containers. I then managed to extend the Having that readydatabase to include an APEX-installation and the Java-installation to extend with ORDS and make them play nicely. I rounded it off with a utility-container for SQLcl.

So with that it builds a complete development environment with the database (which of course includes SQL*Plus), APEX, ORDS, and SQLcl. All that is needed is to run a couple of scripts to get it going. Having a development environment that can be rebuilt in a few minutes is a great feeling. I knew I had to get to that point after my premade environment went belly up at DOAG in 2018. It went completely corrupt minutes before my presentation, making it for the most stressful presentation to date. Never again! Famous last words…

Anyway, take a look at my development environment setup on github.

When you have tested that, you can of course activate the REST-features as you have a complete connected ORDS-config.

Posted in APEX, Docker, Oracle

January 1st, 2019 by Mathias

Well maybe not so much a new you. More like getting your personal “play” environments refreshed.

If you are anything like me, you want the latest and greatest in the setup where you play with great tech.

I have always had database, ORDS, APEX, SQLPLUS and so on installed in a VirtualBox VM. It has worked great and while I was hesitant to jump on the Docker train it is clear that not taking advantage of it in 2019 is being really far behind.

I will blog how I set up and use the Oracle XE 18c and the rest of other things. This time on Docker. This is not a deep dive in the greatness of Docker, there are plenty of those things around. Rather, this is more focused on getting it up and running, not on teaching everything about it.

To me, getting it up so it can be used is a good way to learn. Thus, I will blog my learning as I get my environment set up.

To start for this post, let’s just get Docker installed and validated. Next post adds to it to have an Oracle Database XE 18c installed with CDB+PDB available.

Instead of repeating the instructions to just get Docker installed, follow these links depending on your platform.

On Mac/Windows
Just follow the instructions on


For other linuxes just google “docker install”. I did it for Ubuntu to install it and just followed the instructions. When/if you have a choice to pick docker-engine or Docker CE, you should always pick Docker CE as it is a more current build.

För environments that are not set up this way automatically, you can allow commands being run without being root. This is to not have to enter sudo in front of many docker commands.

sudo usermod -aG docker your-user

Reboot your computer to make sure all things are set up. To test it you can issue “docker run hello-world”.

It should produce output like:
Hello from Docker!

That is it, you now have docker installed and are ready to hang with the cool developers. 🙂

If you want to go through a short intro to what docker is and how it works, then Docker has a nice set of short articles you can go through in an hour. Look at the “Get Started” area on

Posted in Docker