Docker phusion / baseimage安装oracle_db

时间:2018-01-16 17:03:43

标签: java docker oracle-sqldeveloper dockerfile

有人可以帮助我在现有的docker镜像上安装oracle_db客户端。我努力解决这个问题。看起来无法使用phusion / baseimage安装oracle_db。

我的dockerfile是这样的:

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"]

正如你所看到的,我需要java:8版本和oracle_db客户端,sqlplus来使我的docker工作。是否有任何适当的docker镜像有java + oracledb或者无论如何将两个docker镜像合并为一个,这样我两个安装都工作正常。谢谢。

有人可以帮我使用两个FROM以及我需要的所有图像吗?

1 个答案:

答案 0 :(得分:1)

所以你想要一个Docker镜像容器oracle client和java。

Oracle为即时客户端提供Docker镜像,并且可以找到Docker文件的源代码here

对于Java,有许多Docker镜像可用,例如openjdk

您可以使用Docker多阶段构建合并这两个图像。在此之前,请务必登录docker store,转到oracle instantclient 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

构建上述dockerfile后,您将拥有一个包含java和oracle instantclient的docker镜像。