Code Monkey home page Code Monkey logo

oracle-12c-docker's Introduction

Oracle provides this

Oracle has a canonical repository for building docker images for many of their products, including Oracle Databases.

Use cases I want to support

  • Local development databases
  • Databases for use in continuous integration
  • Single instance. RAC deployments are supported, but not necessary for the above two use cases.

How do I build the image?

Oracle has pretty good instructions and scripts for doing this, but it isn't super clear right away. For instance, since you are using Docker, you probably want to have a prebuilt db as well. Here was the end result of the first iteration in my journey:

 $ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
oracle/db-prebuilt   12.1.0.2-ee         00888a40e015        26 minutes ago      14.9GB
oracle/database      12.1.0.2-ee         18553d8c8419        38 minutes ago      10.4GB

That's right, the base image turned out to be 10.4GB and the prebuilt image, a whopping 14.9GB for an image with a pre-built database. Try explaining that to your network admin / container team.

Fortunately, Oracle is aware of this image size problem, and suggests a workaround, which is essentially to use the experimental squash option of docker build. For example, if you are building an enterprise version of 12.1.0.2, you would build it as:

 ./buildDockerImage.sh  -v 12.1.0.2 -e -o --squash

Note that this is an experimental feature, so you will have to pass --experimental=true to DOCKER_OPTS in /etc/sysconfig/docker.

New image sizes after enabling --squash:

$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
oracle/db-prebuilt   12.1.0.2-ee         801cde12e07c        3 seconds ago       9.5GB
oracle/database      12.1.0.2-ee         aad4e86f3d3b        5 minutes ago       5.05GB

Much better! I suspect the db-prebuilt tag can be shrinked down as well.

Wishlist

Oracle please:

  • Express edition for 12c
  • 18c+ container building scripts
  • Allow removing features, to help reduce container footprint (storage and compute). For example, I should be able to disable APEX which would prevent the files from being installed.
  • Canonical docker hub images - so we don't have to discover the build issues above and everyone can just point to a single source of truth :)

oracle-12c-docker's People

Contributors

avindra avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.