Run oracle database in docker, db for each developer

381 Views Asked by At

We have been planning migrating from shared development database to local database for each developer. Installing the database, schema and initial data should be automated and platform independent, and each developer would point his application server and DBMS to this local database instead of a shared one, to freely experiment with the schema without fear of breaking others work. Database in question is Oracle.

Database stuff is of course source controlled, and each developer should easily upgrade to the latest version. Ideal is, each developer runs some kind of platform independent container, which on boot is configured to mirror the QA database by fetching the latest schema and scripts from the source control. It should be easy resetting to the last stable state, but also preserve local changes in some persistent storage in the case of container failure.

I have been considering technologies like Vagrant, Docker and/or Ansible to ship and automate the local database setup and configuration in a platform independent way. However, I read Oracle Database doesn't officially support Docker. What does that mean? Can't I build custom docker with Oracle Database binary?

Would it be better to install Oracle database using vagrant Ansible provisioner, due to the uncertain docker support? Would docker just bring unnecessary layer of complexity, as Vagrant already provides the virtualization, and Ansible could handle the setup and configuration?

I would like to hear some real life war stories about implementing platform independent database per developer pattern.

1

There are 1 best solutions below

0
On

Oracle Database doesn't officially support Docker. just means that there is no official docker image for oracle database for now. But you can always pull a base image like ubuntu and install your database.

Once you have setup the whole environment on top of the base image, you can push the image you created into a private repository and share it.

Private repository serveice with version control is provided by dockerhub, GCP, AWS etc...

Once everyone has docker deamon running in their systems, they can just pull and deploy the image as a container.