papaya
papaya

Reputation: 1535

Docker phusion/baseimage install oracle_db

Can someone help me install oracle_db client on my existing docker image. I tried so hard to get around a fix for this issue. Looks impossible to install oracle_db with phusion/baseimage.

My dockerfile is this:

FROM phusion/baseimage

MAINTAINER bugsbunny

RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list

RUN add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe"

RUN apt-get -y update 

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q python-software-properties software-properties-common

ENV JAVA_VER 8

ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

RUN echo 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main' >> /etc/apt/sources.list && \
    echo 'deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main' >> /etc/apt/sources.list && \
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C2518248EEA14886 && \
    apt-get update && \
    echo oracle-java${JAVA_VER}-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \
    apt-get install -y --force-yes --no-install-recommends oracle-java${JAVA_VER}-installer oracle-java${JAVA_VER}-set-default && \
    apt-get clean && \
    rm -rf /var/cache/oracle-jdk${JAVA_VER}-installer

RUN update-java-alternatives -s java-8-oracle

RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-oracle" >> ~/.bashrc

RUN apt-get install nano

RUN apt-get install -y ksh

RUN echo "deb http://cz.archive.ubuntu.com/ubuntu trusty main" > /etc/apt/sources.list

RUN apt-get update 

RUN cd /home/ && wget http://launchpadlibrarian.net/333072908/libaio1_0.3.110-4_amd64.deb && dpkg -i libaio1_0.3.110-4_amd64.deb

RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

ADD mtf-release /home/mtf-release

ADD instantclient_12_2 /opt/oracle/instantclient_12_2

RUN sh -c "echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient.conf" && ldconfig

RUN  export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH

RUN  mkdir -p /opt/oracle/instantclient_12_2/network/admin

RUN export PATH=/opt/oracle/instantclient_12_2:$PATH


#ENTRYPOINT ["/usr/bin/python"]

As you can see, I need java:8 version and oracle_db client, sqlplus to make my docker work. Is there any proper docker image which has java + oracledb or anyway to merge two docker images into one so that I have both installed working fine.? Thank you.

Can someone help me with using two FROMs and what all images i need?

Upvotes: 0

Views: 436

Answers (1)

yamenk
yamenk

Reputation: 51876

So you want a Docker image that container both oracle client and java.

Oracle provides a Docker image for the instant client and the source code for the Docker file can be found here.

For Java there are many Docker images available such as openjdk.

You can merge the two images using Docker multi-stage builds. Before that make sure to login into docker store, go to oracle instantclient image, and accept the license and pull the image docker pull store/oracle/database-instantclient:12.2.0.1

FROM store/oracle/database-instantclient:12.2.0.1 as oracle

FROM openjdk:8-jdk 
COPY --from=oracle /usr/lib/oracle /usr/lib/oracle
ENV PATH=$PATH:/usr/lib/oracle/12.2/client64/bin

Once you build the above dockerfile you will have a docker image containing java and oracle instantclient.

Upvotes: 1

Related Questions