有人可以帮助我在现有的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以及我需要的所有图像吗?
答案 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镜像。