gpt4 book ai didi

java - Docker phusion/baseimage 安装 oracle_db

转载 作者:行者123 更新时间:2023-12-02 11:44:49 29 4
gpt4 key购买 nike

有人可以帮我在现有的 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 工作。是否有任何合适的具有 java + oracledb 的 docker 镜像,或者无论如何将两个 docker 镜像合并为一个,以便我安装的两个镜像都能正常工作。谢谢。

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

最佳答案

因此,您需要一个包含 Oracle 客户端和 Java 的 Docker 镜像。

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 镜像。

关于java - Docker phusion/baseimage 安装 oracle_db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286353/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com