Public | Automated Build

Last pushed: 16 days ago
Short Description
Oracle Standard Edition 12c Release 1 with data mount support and etc
Full Description

Oracle Standard Edition 12c Release 1

Oracle Standard Edition 12c Release 1 on Ubuntu
This Dockerfile is a trusted build of Docker Registry.

Installation

docker pull sath89/oracle-12c

Run with 8080 and 1521 ports opened:

docker run -d -p 8080:8080 -p 1521:1521 sath89/oracle-12c

Run with data on host and reuse it:

docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle sath89/oracle-12c

Run with Custom DBCA_TOTAL_MEMORY (in Mb):

docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle -e DBCA_TOTAL_MEMORY=1024 sath89/oracle-12c

Connect database with following setting:

hostname: localhost
port: 1521
sid: xe
service name: xe.oracle.docker
username: system
password: oracle

To connect using sqlplus:

<pre>
sqlplus system/oracle@//localhost:1521/xe.oracle.docker
</pre>

Password for SYS & SYSTEM:

oracle

Connect to Oracle Application Express web management console with following settings:

http://localhost:8080/apex
workspace: INTERNAL
user: ADMIN
password: 0Racle$

Apex upgrade up to v 5.*

docker run -it --rm --volumes-from ${DB_CONTAINER_NAME} --link ${DB_CONTAINER_NAME}:oracle-database -e PASS=YourSYSPASS sath89/apex install

Details could be found here: https://github.com/MaksymBilenko/docker-oracle-apex

Connect to Oracle Enterprise Management console with following settings:

http://localhost:8080/em
user: sys
password: oracle
connect as sysdba: true

By Default web management console is enabled. To disable add env variable:

docker run -d -e WEB_CONSOLE=false -p 1521:1521 -v /my/oracle/data:/u01/app/oracle sath89/oracle-12c
#You can Enable/Disable it on any time

Start with additional init scripts or dumps:

docker run -d -p 1521:1521 -v /my/oracle/data:/u01/app/oracle -v /my/oracle/init/SCRIPTSorSQL:/docker-entrypoint-initdb.d sath89/oracle-12c

By default Import from docker-entrypoint-initdb.d is enabled only if you are initializing database (1st run).

To customize dump import use IMPDP_OPTIONS env variable like -e IMPDP_OPTION="REMAP_TABLESPACE=FOO:BAR"
To run import at any case add -e IMPORT_FROM_VOLUME=true

In case of using DMP imports dump file should be named like ${IMPORT_SCHEME_NAME}.dmp

User credentials for imports are ${IMPORT_SCHEME_NAME}/${IMPORT_SCHEME_NAME}

If you have an issue with database init like DBCA operation failed, please reffer to this issue

TODO LIST

  • Web management console HTTPS port
  • Add functionality to run custom scripts on startup, for example User creation
  • Add Parameter that would setup processes amount for database (Currently by default processes=300)
  • Spike with clustering support
  • Spike with DB migration from 11g

In case of any issues please post it here.

Docker Pull Command
Owner
sath89
Source Repository

Comments (22)
vvaka17
25 days ago

I am trying to build an image using sath89/oracle-12c as base image.
My dockerfile looks something like
FROM sath89/oracle-12c
RUN /entrypoint.sh
....
....
RUN ["catalina.sh","run"]
when I run docker build , the image creation stops at the entrypoint.sh and does not proceed further in the docker file.
Any means to make it work?

eash82
25 days ago

HI,

I was able to successfully pull the image by writing the docker file FROM:sath89 and than RUN entrypoint..sh. I want to extend the docker file with more commands like copying few more softwares and RUN. But entrypoint.sh doesnot exit with out CTRL+C which makes the image creation fail. Can you please how i can extend and write docker file.

dapalmi
3 months ago

Are you still planning to add the functionality to run custom scripts on startup, for example User creation?

jmariano
3 months ago

Kewl!, Works like a Charm!

fils
3 months ago

I can get this to run fine and connect to it. However, I am really interested in how I can load a dump file made with exp into a DB running in this container. I see the notes above about it, but struggling to make it work. Are there some more details examples elsewhere?

bigbower
5 months ago

failed to register layer: Error processing tar file(exit status 1): write /u01/app/oracle-product/12.1.0/xe/assistants/dbca/templates/Seed_Database.dfb: no space left on device

sath89
5 months ago

mindblowing,
I've added tag r1

daggerok
6 months ago

not worked according to the description:

$ docker run -d -p 8888:8080 -p 1521:15211 sath89/oracle-12c
$ docker logs -f <hash>
Database not initialized. Initializing database.
ls: cannot access /u01/app/oracle/oradata: No such file or directory
Starting tnslsnr
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/sysman/oii/oiit/OiitTargetLockNotAvailableException
at oracle.sysman.assistants.util.OracleHome.getNodeNames(OracleHome.java:347)
at oracle.sysman.assistants.util.OracleHome.isClusterInstalled(OracleHome.java:323)
at oracle.sysman.assistants.dbca.backend.CommandLineArguments.<init>(CommandLineArguments.java:521)
at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:103)
at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:226)
Caused by: java.lang.ClassNotFoundException: oracle.sysman.oii.oiit.OiitTargetLockNotAvailableException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 5 more
mindblowing
6 months ago

Can you please release each (or at least major) new update as separate version using "Tags", we are using your image as base and with usage of Tag "latest" we can't guarantee that building of our image will be successful.

odessa007
6 months ago

Please, add $ORACLE_HOME/bin to PATH env for oracle user.