在 docker 容器中安装 oracle 客户端

7 oracle oracleclient docker dockerfile alpine-linux

我使用 alpine linux 作为基础镜像,我需要安装一个 oracle 客户端原生库。我相信你可以从这里下载:

https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

  1. 看起来我必须登录才能下载,有人知道如何在不登录的情况下下载客户端库的 zip 文件吗?

  2. 有谁知道如何在 bash 脚本或 dockerfile 中正确安装客户端库?

Moh*_*eed 5

我想出了一些在ubuntuDocker 中安装 Oracle 即时客户端的不同方法,它可能会帮助其他人

请按照以下简单步骤操作:

  1. .rpmoracle官方下载中心下载oracle即时客户端(文件)

  2. 转换为.deb(您可以使用apt-get install alien)并移动到您的工作目录中的某个位置。

  3. 现在更新您的Dockerfile并进行构建

    RUN apt-get update
    WORKDIR /opt
    ADD ./ORACLE-INSTANT-CLIENT.deb  /opt
    #if libaio also required
    RUN apt-get install libaio1 
    RUN dpkg -i oracle-instantclient.deb
    
    Run Code Online (Sandbox Code Playgroud)


Mar*_*fer 5

这是基于 Debian 10 (Buster) 的官方 PHP-FPM 映像的工作解决方案。下面Dockerfile安装Oracle即时客户端18.5(basiclitedevel的使用RPM packges和)alien

正如 Christopher Jones 所写,这些文件目前无需 Oracle 帐户即可下载。

FROM php:7.2.32-fpm

# see https://help.ubuntu.com/community/Oracle%20Instant%20Client
RUN apt-get update && apt-get install -y --no-install-recommends alien libaio1 wget && \
    wget https://download.oracle.com/otn_software/linux/instantclient/185000/oracle-instantclient18.5-basiclite-18.5.0.0.0-3.x86_64.rpm && \
    wget https://download.oracle.com/otn_software/linux/instantclient/185000/oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm && \
    alien -i oracle-instantclient18.5-basiclite-18.5.0.0.0-3.x86_64.rpm && \
    alien -i oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm
ENV LD_LIBRARY_PATH="/usr/lib/oracle/18.5/client64/lib:${LD_LIBRARY_PATH}"
Run Code Online (Sandbox Code Playgroud)


Chr*_*nes 1

您不想使用 Alpine Linux,因为您需要破解它并且它可能会变得不稳定。有关更多评论,请参阅/sf/answers/3730371851/ 。

另请参阅https://github.com/oracle/docker-images/blob/master/OracleInstantClient/dockerfiles/19/Dockerfile,它不需要任何登录。

总之,在 Oracle Linux 7 上:

yum -y install oracle-release-el7
yum -y install oracle-instantclient19.3-basic && rm -rf /var/cache/yum
Run Code Online (Sandbox Code Playgroud)

更新:Oracle 在https://github.com/oracle/docker-images/pkgs/container/oraclelinux7-instantclienthttps://github.com/oracle/docker-images/pkgs/container/oraclelinux8-instantclient提供了 Docker 映像可以像这样拉:

docker pull ghcr.io/oracle/oraclelinux7-instantclient:21
Run Code Online (Sandbox Code Playgroud)

docker pull ghcr.io/oracle/oraclelinux8-instantclient:21
Run Code Online (Sandbox Code Playgroud)