Installing the Oracle database in docker
This blogpost is about how to install and run the Oracle database in docker. Please mind this is not an officially supported virtualisation platform for the Oracle database. This is a proof of concept setup.
Linux host setup.
In my setup, I used a linux host, freshly installed with Oracle Linux 6.7, which is going to be used as docker server. Please mind you need to leave diskspace (or a disk device) unused for the commonly documented docker setup with the btrfs driver. The root filesystem is using a ext4 filesystem by default. For the proof of concept setup, a 20G diskspace for the Operating system only is enough. I used the minimal linux installation.
The first step is to add a disk, or use a partition and format it with btrfs and mount it:
# lsblk # yum install btrfs-progs # mkfs.btrfs -L btrfs1 /dev/sdb # vi /etc/fstab: LABEL=btrfs1 /var/lib/docker btrfs defaults 0 1 # mkdir /var/lib/docker # mount -a
1- list blockdevices. this showed me my added block device for docker was /dev/sdb.
2- because of the minimal install, I need to add the btrfs userspace programs.
3- create a btrfs filesystem on /dev/sdb, and label it btrfs1.
4- edit /etc/fstab, make it mount the btrfs filesystem to /var/lib/docker.
5- create the mount point for the btrfs filesystem.
6- mount all the mounts listed in /etc/fstab.
The second step is to install and preliminary configure docker:
# vi /etc/yum.repos.d/public-yum-ol6.repo: enable public_ol6_addons # yum install docker # vi /etc/sysconfig/docker: add "-s btrfs" to other_args # service docker start # chkconfig docker on # printf "limit memlock unlimited unlimited\n" > /etc/init/docker.conf
1- enable public_ol6_addons, in which the docker rpm sits.
2- install docker.
3- make docker use the btrfs driver.
4- start docker.
5- enable autostart for docker.
6- reset the memlock ulimit for the containers (needed for the Oracle database SGA later on).
Now we can go into the true docker part of it. Docker lives, as far as I can see at this point, in the /var/lib/docker directory. In order to build my oracle database image, I create a ‘dockerfiles’ directory, and in it a ‘build-oracle-12102’ directory:
mkdir -p /var/lib/docker/dockerfiles/build-oracle-12102
Next up, the dockerfile (aptly named Dockerfile by default) needs to be made in the build-oracle-12102 directory to build an image:
FROM oraclelinux:6 MAINTAINER frits.hoogland@gmail.com RUN groupadd -g 54321 oinstall RUN groupadd -g 54322 dba RUN useradd -m -g oinstall -G oinstall,dba -u 54321 oracle RUN yum -y install oracle-rdbms-server-12cR1-preinstall perl wget unzip RUN mkdir /u01 RUN chown oracle:oinstall /u01 USER oracle WORKDIR /home/oracle ENV mosUser=you@example.com mosPass=supersecret DownList=1,2 RUN wget https://dl.dropboxusercontent.com/u/7787450/getMOSPatch.sh RUN wget https://dl.dropboxusercontent.com/u/7787450/responsefile_oracle12102.rsp RUN echo "226P;Linux x86-64" > /home/oracle/.getMOSPatch.sh.cfg RUN sh /home/oracle/getMOSPatch.sh patch=17694377 RUN unzip p17694377_121020_Linux-x86-64_1of8.zip RUN unzip p17694377_121020_Linux-x86-64_2of8.zip RUN rm p17694377_121020_Linux-x86-64_1of8.zip p17694377_121020_Linux-x86-64_2of8.zip RUN /home/oracle/database/runInstaller -silent -force -waitforcompletion -responsefile /home/oracle/responsefile_oracle12102.rsp -ignoresysprereqs -ignoreprereq USER root RUN /u01/app/oraInventory/orainstRoot.sh RUN /u01/app/oracle/product/12.1.0.2/dbhome_1/root.sh -silent RUN rm -rf /home/oracle/responsefile_oracle12102.rsp /home/oracle/getMOSPatch.sh /home/oracle/database USER oracle WORKDIR /home/oracle RUN mkdir -p /u01/app/oracle/data RUN wget https://dl.dropboxusercontent.com/u/7787450/manage-oracle.sh RUN chmod 700 /home/oracle/manage-oracle.sh RUN wget https://dl.dropboxusercontent.com/u/7787450/db_install.dbt EXPOSE 1521 CMD /home/oracle/manage-oracle.sh
1- FROM; this is the (operating system) image which is used as a base image. If it is not available locally, it will be pulled from the central docker repository. oraclelinux:6 means Oracle Linux version 6. This serves as the base image on which all the other things are built.
2- MAINTAINER; the maintainer of the new image, obviously.
3/4/5- RUN; the groups and user for the oracle database (oinstall, dba, oracle) are created. This looks like an redundant step, as this is supposed to be done by the oracle-dbms-server-12cR1-preinstall rpm. However, this does not work. By manually creating them this way, the assignment is alright.
6- RUN; yum -y installs all the necessary packages. Oddly, it seems unzip is not in the preinstall package?
7- RUN; /u01 is the directory in which the database software is installed.
8- RUN; chown user:group is used to change the user and group permissions of /u01.
9- USER; this changes the current user for execution to ‘oracle’.
10- WORKDIR; this sets the work directory.
11- ENV; this sets a few environment variables needed by the getMOSPatch.sh script. Please mind you need to fill out your own My Oracle Support username (mosUser) and password (mosPass). Leave DownList as it is.
12- RUN; this downloads a modified version of the getMOSPatch.sh script by Maris Elsins (thank you Maris and John Piwowar). The only modification I made is to make the downloads pre-selectable by setting the DownList environment variable.
13- RUN; this downloads a response file for the installation.
14- RUN; this echoes the language for the patches to download.
15- RUN; sh /home/oracle/getMOSPatch.sh patch=17694377 runs getMOSPatch.sh and downloads file 1 and 2 of patch 17694377, which is the patch for the Oracle database version 12.1.0.2.
16/17- RUN; unzips the two files as the result of the patch download in step 15.
18- RUN; cleanup the zip files after they have been extracted.
19- RUN; runs the installer with the template downloaded, and a few extra switches.
20- USER; here we switch to root, because after installation there are two scripts which need to be run as root.
21/22- RUN; runs the two post-install root scripts.
23- RUN; cleans up the getMOSPatch.sh script, the template and the database directory, which contains the database installation media.
24/25- USER/WORKDIR; change back to the oracle user.
26- RUN; create a directory on which we hook the persistent storage of the database
27- RUN; download manage-oracle.sh, the main script that sets up the listener and the database.
28- RUN; sets the mode of the manage-oracle.sh script to 700 (read/write/execute for the oracle user).
29- RUN; download the database installation template.
30- EXPOSE; make port 1521 (the listener port) available externally.
31- CMD; make /home/oracle/manage-oracle.sh the main command (pid 1 in the container).
After creating the Dockerfile, we can build an image with the description in the Dockerfile:
# cd /var/lib/docker/dockerfiles/build-oracle-12102 # docker build -t "oracle-12102" .
(mind the trailing dot)
This will take some time, as it is downloading the operating system base image, the software and does the installation. If all goes well, you end up with two images:
# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE oracle-12102 latest 28c18b083371 42 seconds ago 12.25 GB oraclelinux 6 cfc75fa9f295 11 days ago 156.2 MB
Which are the image we started with (oraclelinux), and our fresh created image “oracle-12102”.
In order to start the container, we need to prepare a directory for the database files, which is mounted into the container, and is persistent (so we can actually store and save everything, which is one of the basic things a database is used for). For this I create a directory, and set the userid and group id of the Oracle user (inside the container!):
# mkdir -p /var/lib/docker/db/frits # chown 54321:54321 /var/lib/docker/db/frits
Now that we made all preparations, we can start a container, in which the database will run. The way I created the script (manage-oracle.sh), the container will create or start a database with the hostname set for the container. At this point I don’t know if that is the best choice. It seems like a good way to automate currently. This is how a container is started based on the image we just created. The startup line looks rather long, because a couple of settings need to be made, which are saved by docker:
# docker run --ipc=host --volume=/var/lib/docker/db/frits:/u01/app/oracle/data --name frits --hostname frits --detach=true oracle-12102 25efb5d26aad31e7b06a8e2707af7c25943e2e42ec5c432dc9fa55f0da0bdaef
If you wonder what the long hexadecimal string is, this is the full image hash. Now the container is starting. There are a couple of important things to see in the docker run line:
–ipc=host This makes the host’s IPC available to the container. Otherwise my container only could see 32MB of shared memory.
–volume=/var/lib/docker/db/frits:/u01/app/oracle/data This maps the docker hosts directory /var/lib/docker/db/frits available in the container at /u01/app/oracle/data (–volume=host:container). This is persistent storage, unlike the container’s image.
–name=frits This gives the docker container the name frits.
–hostname=frits This makes the container set the hostname to frits.
–detach=true This makes the container not be connected to the starting shell, because otherwise the shell signals will be honoured by the container, meaning the CTRL-C will stop the container.
oracle-12102 This is the image on which the container is based.
If you want to see what is going on in the container, the first thing is to use the docker logs command. This will show the standard out of the main running process. The container will stop if the main running process terminates (CMD in our Dockerfile, which is starting manage-oracle.sh). In the manage-oracle.sh I put a tail on the alert.log of the database after starting the listener, so you can use ‘docker logs’ to look how the database is doing (-f means follow):
# docker logs -f frits LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 11-AUG-2015 15:33:30 Copyright (c) 1991, 2014, Oracle. All rights reserved. Starting /u01/app/oracle/product/12.1.0.2/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 12.1.0.2.0 - Production System parameter file is /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/frits/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=frits)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=frits)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production Start Date 11-AUG-2015 15:33:30 Uptime 0 days 0 hr. 0 min. 5 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/frits/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=frits)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully SQL*Plus: Release 12.1.0.2.0 Production on Tue Aug 11 15:33:36 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> ORACLE instance started. Total System Global Area 1048576000 bytes Fixed Size 2932336 bytes Variable Size 247464336 bytes Database Buffers 658505728 bytes Redo Buffers 139673600 bytes Database mounted. Database opened. SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options Database Characterset is WE8MSWIN1252 No Resource Manager plan active replication_dependency_tracking turned off (no async multimaster replication found) Starting background process AQPC Tue Aug 11 15:33:55 2015 AQPC started with pid=30, OS id=88 Starting background process CJQ0 Tue Aug 11 15:33:57 2015 CJQ0 started with pid=61, OS id=150 Completed: ALTER DATABASE OPEN Tue Aug 11 15:34:10 2015 =========================================================== Dumping current patch information =========================================================== No patches have been applied ===========================================================
If you followed the examples in the blogpost, this is not what you would see, because there isn’t a database. Instead, if you look with docker logs, you will see:
# docker logs -f frits LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 11-AUG-2015 15:44:51 Copyright (c) 1991, 2014, Oracle. All rights reserved. Starting /u01/app/oracle/product/12.1.0.2/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 12.1.0.2.0 - Production System parameter file is /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/frits/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=frits)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=frits)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production Start Date 11-AUG-2015 15:44:51 Uptime 0 days 0 hr. 0 min. 5 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/frits/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=frits)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully Creating and starting Oracle instance 2% complete 3% complete 5% complete
Which is the dbca working to create a database for you.
If you wonder what is going on inside the container, you can create a shell in it using the ‘docker exec’ command. This can not be done if the container is stopped, only if the container is running:
# docker exec -ti frits bash [oracle@frits ~]$
Unlike an attached start, a docker exec bash session can exit without interrupting the container.
In order to see running containers, use docker ps:
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 304d273d9424 oracle-12102:latest "/bin/sh -c /home/or 2 minutes ago Up 2 minutes 1521/tcp frits
The container can be stopped:
# docker stop frits frits
It is not visible anymore as running container with docker ps:
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
However, you can see stopped containers when you add ‘-a’ to ps:
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 304d273d9424 oracle-12102:latest "/bin/sh -c /home/or 25 minutes ago Exited (0) 2 minutes ago frits
You can start a stopped container with docker start:
# docker start -a=false frits frits
If you want containers to start on boot, you must automate the docker start command on the operating system.
Please mind the exposed port on the container (1521, the listener) is local to the container, and not visible outside of the docker host. If you want to make the port visible outside of the docker host, you must publish it from the container to the host. In order to do that, you must redefine the container. This requires you to drop it first:
# docker stop frits frits # docker rm frits frits # docker run --ipc=host --volume=/var/lib/docker/db/frits:/u01/app/oracle/data --name frits --hostname frits --detach=true --publish=1521:1521 oracle-12102 84421ae6ee344df7d78aba5f0f5314894137f120a05b94870fcc0f805287b632
Because the database is on persistent storage, it can just startup again.
Impressive. Makes this one look a little weak. http://sethmiller.org/oracle-2/oracle-db12c-in-docker/
Credit where it’s due Seth, your post is one of the sites where I picked up bits and pieces. I mostly used the docker documentation.
Upon testing I found little things like the ulimits reset to unlimited and using –ipc=host in none of the blogs, which at least needed in my setup.
Hi,
I am getting authorization failed when docker is trying to execute the 15th step:RUN sh /home/oracle/getMOSPatch.sh patch=17694377
Authorization failed.
The command ‘/bin/sh -c sh /home/oracle/getMOSPatch.sh patch=17694377’ returned a non-zero code:
I would suggest investigating the issue! Like running it stand alone, and look at the error message…
I got this error too. spent a lot of time trying to figure it out but couldn’t. As a work around, I manually downloaded the first two parts of the patch and then in the Dockerfile, copied them over.
I was able to authenticate using ssl in the standard wget.sh script that Oracle provide however so perhaps it’s something to do with the authentication methods. Not really sure how .wgetrc works.
If I do figure out why the getMOSPatch.sh wouldn’t authenticate, I’ll update here.
Hi Frits,
Its always great to learn from your blog.
I replicated every step you have specified on Linux 7.2. I am failing to start the container(during db creation) .
[root@localhost nava]# docker run –ipc=host –volume=/var/lib/docker/db/nava:/u01/app/oracle/data –name nava –hostname nava –detach=true oracle-12102
c10282020dd672436c41777ead9f2f6b2da21ff9d8374cd6dc865116f0b0dc06
[root@localhost nava]# docker logs -f nava
LSNRCTL for Linux: Version 12.1.0.2.0 – Production on 24-JAN-2016 07:14:05
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Starting /u01/app/oracle/product/12.1.0.2/dbhome_1/bin/tnslsnr: please wait…
TNSLSNR for Linux: Version 12.1.0.2.0 – Production
System parameter file is /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/nava/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nava)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=nava)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 – Production
Start Date 24-JAN-2016 07:14:06
Uptime 0 days 0 hr. 0 min. 8 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/nava/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nava)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
Creating and starting Oracle instance
2% complete
3% complete
4% complete
5% complete
DBCA Operation failed.
Look at the log file “/u01/app/oracle/cfgtoollogs/dbca/nava/nava.log” for further details.
select ‘spfile=”‘||value||'”‘ from v$parameter where name = ‘spfile’
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
Sun Jan 24 07:14:57 2016
RECOMMENDATION:
Sun Jan 24 07:14:57 2016
1. Configure system with expected number of pages for every
supported system pagesize prior to the next instance restart operation.
Sun Jan 24 07:14:57 2016
2. Increase per process memlock (soft) limit to at least 1002MB
to lock 100% of SHARED GLOBAL AREA (SGA) pages into physical memory
Sun Jan 24 07:14:57 2016
**********************************************************************
manage-oracle.sh has below contents.
create_pfile() {
$ORACLE_HOME/bin/sqlplus -S / as sysdba < $ORACLE_HOME/network/admin/listener.ora
$ORACLE_HOME/bin/lsnrctl start
if [ ! -f ${PERSISTENT_DATA}/DATABASE_IS_SETUP ]; then
sed -i “s/{{ db_create_file_dest }}/\/u01\/app\/oracle\/data\/$(hostname)/” /home/oracle/db_install.dbt
sed -i “s/{{ oracle_base }}/\/u01\/app\/oracle/” /home/oracle/db_install.dbt
sed -i “s/{{ database_name }}/$(hostname)/” /home/oracle/db_install.dbt
$ORACLE_HOME/bin/dbca -silent -createdatabase -templatename /home/oracle/db_install.dbt -gdbname $(hostname) -sid $(hostname) -syspassword oracle -systempassword oracle -dbsnmppassword oracle
create_pfile
if [ $? -eq 0 ]; then
touch ${PERSISTENT_DATA}/DATABASE_IS_SETUP
You should run the script manually in the container, and then look in the alert.log or the trace file where DBCA fails.
A quick glance at the text following ‘RECOMMENDATION’ gives a hint that not enough shared memory is present to fulfil the need of the database’s SGA?
runInstaller just terminated for me. The installActions log shows it terminated at different places in multiple build attempts. However, the log doesn’t show any error messages, just INFO. One thing is consistent is that all attempts terminated in about 2 minutes.
—
…
Step 18 : RUN rm p17694377_121020_Linux-x86-64_1of8.zip p17694377_121020_Linux-x86-64_2of8.zip
—> Using cache
—> 47c835440f6e
Step 19 : RUN /home/oracle/database/runInstaller -silent -force -waitforcompletion -responsefile /home/oracle/responsefile_oracle12102.rsp -ignoresysprereqs -ignoreprereq
—> Running in 30368ade8d9e
Starting Oracle Universal Installer…
Checking Temp space: must be greater than 500 MB. Actual 15540 MB Passed
Checking swap space: must be greater than 150 MB. Actual 15455 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-03-24_03-55-53PM. Please wait …You can find the log of this install session at:
/u01/app/oraInventory/logs/installActions2016-03-24_03-55-53PM.log
—
If I start a container with the cache 47c835440f6e, the same runInstaller command can complete successfully in run time.
Any pointers will be appreciated.
I don’t know your environment. If runinstaller terminates, it should leave some kind of message to indicate why. Have you tried beginning from scratch? Is there enough space in the filesystem on which the dockers instances are? You could redirect any output to a file during the automated install to see if it gives any messages there? A lot of people created a dockerised oracle database from this blogpost, so currently I assume this has to do with your setup. However newer versions of docker and/or the operating system might influence the machine behaviour. Keep me posted if you find the culprit!
Hi Frits,
Great post, thanks for all the help!
Quick question, is the overall size of the database still limited by the Docker enforced max container size (default 10GB)?
Even with mapped host volumes the container size is still the limiting factor, unless I’m missing something? One workaround is to use –volumes-from, but that is also just slight relief as it’s using another container which itself has size constraints.
Any thoughts on how to work with growing database size? Ultimately I’d like all the data files to live on shared storage and not impact the container size.
Hi, thanks for reading!
I have worked with the database and docker to make it really working, because I found some of the other tutorials leaving out details that made it preventing from working in my case, and have the startup and creation at start working reliably. Because running the Oracle database in a container is not supported by Oracle, I haven’t looked further into it, I did this for the exercise of working with docker, and gaining some understanding of using it with something I am familiar with: the oracle database.
I guess this is a very long answer saying: no, I haven’t tested a real life scenario with a database that grew to proportions that a real database would do. I was not aware of this 10G limitation.
The 10GB limit (increased to 100GB https://github.com/docker/docker/pull/14709) only applies to storage devices through device mapper in a container. Simply use a volume on the host where the only size limitation is the host file system.
Thanks for your reply Seth!
The setup I documented in the blogpost does use a directory on the host.
Thank you Seth & Frits, I will attempt that.
This has been an extremely helpful post. I’m just learning Docker and this was a very thorough exercise and helped me understand many different aspects of Docker.
Cheers!
Hi Frits,
i’m getting the error about insufficient space for the Oracle home, i’m running the “built” command on my local machine.
Error:
Step 19 : RUN /home/oracle/database/runInstaller -silent -force -waitforcompletion -responsefile /home/oracle/responsefile_oracle12102.rsp -ignoresysprereqs -ignoreprereq
—> Running in d80846b92dcf
Starting Oracle Universal Installer…
Checking Temp space: must be greater than 500 MB. Actual 6212 MB Passed
Checking swap space: must be greater than 150 MB. Actual 5951 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-05-11_09-46-42PM. Please wait …[FATAL] [INS-32021] Insufficient disk space on this volume for the selected Oracle home.
CAUSE: The selected Oracle home was on a volume without enough disk space.
ACTION: Choose a location for Oracle home that has enough space (minimum of 6,553MB) or free up space on the existing volume.
A log of this session is currently saved as: /tmp/OraInstall2016-05-11_09-46-42PM/installActions2016-05-11_09-46-42PM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location.
The command ‘/bin/sh -c /home/oracle/database/runInstaller -silent -force -waitforcompletion -responsefile /home/oracle/responsefile_oracle12102.rsp -ignoresysprereqs -ignoreprereq’ returned a non-zero code: 254
Thank you,
Enio
Hi Frits,
Good blog post.
Now that Oracle Database 12.1.0.2 is officially supported on LxC containers, have you had any opportunity to deploy it? Curious to hear if there is any customer interest.
Frits,
Thanks for this post and the other VBox, Vagrant, and Ansible. Gives me some stuff to look at.
Removing intermediate container 1255a1872423
Step 15 : RUN sh /home/oracle/getMOSPatch.sh patch=17694377
—> Running in f01c5af69202
Authorization failed.
The command ‘/bin/sh -c sh /home/oracle/getMOSPatch.sh patch=17694377’ returned a non-zero code: 1
Regards
Gurudatta N.R
I was able to fix this with My MOS Account.
ENV mosUser=you@example.com mosPass=supersecret DownList=1,2
Regards
Gurudatta N.R
Pingback: Run Oracle databases in Docker Containers | Robin Cloud Platform (RCP)
Looks like all the dropbox files have been removed 😦
Please add the files..they are missing in dropbox…
Once I got the time, I will try to add them again. Thanks for reporting.