7 oracle oracleclient docker dockerfile alpine-linux
我使用 alpine linux 作为基础镜像,我需要安装一个 oracle 客户端原生库。我相信你可以从这里下载:
https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
看起来我必须登录才能下载,有人知道如何在不登录的情况下下载客户端库的 zip 文件吗?
有谁知道如何在 bash 脚本或 dockerfile 中正确安装客户端库?
我想出了一些在ubuntu
Docker 中安装 Oracle 即时客户端的不同方法,它可能会帮助其他人
请按照以下简单步骤操作:
.rpm
从oracle官方下载中心下载oracle即时客户端(文件)
转换为.deb
(您可以使用apt-get install alien
)并移动到您的工作目录中的某个位置。
现在更新您的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)这是基于 Debian 10 (Buster) 的官方 PHP-FPM 映像的工作解决方案。下面Dockerfile
安装Oracle即时客户端18.5(basiclite和devel的使用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)
您不想使用 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-instantclient和https://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)
归档时间: |
|
查看次数: |
13094 次 |
最近记录: |