We are struggling with a common problem of trying to provide an Oracle 11g instance for our developers to test with. Our standard build agents are based on Ubuntu 12.04 but Oracle supports only RedHat based OS's.
There are some hacks about installing Oracle on Ubuntu floating around the net but they seem to be very fragile and a matter of hit-and-miss.
We want to avoid having to support an entire build server Puppet configuration on top of RedHat(/CentOS) just in order to support Oracle so I was beginning to wonder whether we can employ Docker to provide a RedHat-like environment required just for Oracle on top of our standard Ubuntu systems. The idea is that Oracle will run in its own container but the rest of the build agent will still run on standard Ubuntu, able to talk to Oracle over TCP.
I know what LXC's are and the difference between them and full-fledged virtualization like KVM/VirtualBox etc, but I was wondering whether it could still be possible.
Thanks.
If Oracle Express is suitable for you:
Now you have a deb package of Oracle XE 11g. Install it!
But there's still a problem: /dev/shm. Here how to fix it:
Start Oracle XE: service oracle-xe configure
I am using the following docker image with a good level of success.
Get it to run with:
and
Here is my fork:
You may check here:
https://registry.hub.docker.com/u/sath89/oracle-xe-11g/
https://github.com/MaksymBilenko/docker-oracle-xe-11g
I can confirm that Oracle XE works within Docker. the only issue is that inside the container the shm is configured to only 65356k see https://github.com/dotcloud/docker/issues/2606 The only workaround so far is to change the lxc template and recompile docker (which is easy)
This is definitely a feasible approach. We use Ubuntu 14.04 for our host machines and run several Oracle 11g instances within Docker containers for development purposes as well.
Currently (Docker 1.5) for both 11g and 12c the main issue is Docker's hard-coded shared memory limit Issue #2606. There are currently two workarounds for this:
docker run --privileged ...
and remount /dev/shm with more memory before starting the instanceYou can use OEL 6.5 LXC Linux Containers ontop of Ubuntu 14.04 as described step-by-step here at my blog:
https://sites.google.com/site/nandydandyoracle/technologies/lxc/oracle-lxc-vlc