我的目标是从Dockerfile(基本上是设置Oracle客户端(运行这个:
RUN yum -y install /tmp/oracle-instantclient*.rpm &&
rm -rf /var/cache/yum &&
rm -f /tmp/oracle-instantclient*.rpm &&
echo /usr/lib/oracle/12.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient12.2.conf &&
ldconfig
问题是,我似乎无法访问";百胜";。因此,我尝试添加它,如下所示。
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y python3-pip
RUN apt-get -y install curl
# Pick up some Python3 dependencies.
RUN apt-get update && apt-get install -y --no-install-recommends
build-essential
curl
yum <------ Having a problem with "yum"
libfreetype6-dev
libpng-dev
[... snip ...]
当运行docker compose build时,我得到以下错误:E: 无法找到程序包yum-
看起来百胜在早期版本的Ubuntu(例如:Ubuntu 16(中,但它不在Ubuntu 20中(?(——或者——我遗漏了什么。如果Ubuntu20中没有百胜,如何添加它?
TIA-
Yum仅在Centos Distribution、中受支持
如果你使用的是Ubuntu(你的基本映像就是Ubuntu(,你必须在Dockerfile 中使用apt进行所有包管理操作
如果您只能获得"oracle-instantclient"包的RPM文件,作为解决方法,您可以在dockerfile中包括以下内容:
- 安装"Alien"软件包(在.rpm和.deb文件之间转换(:
sudo apt-get install alien
- 获取RPM文件
wget [repository address]/package_name.rpm
- 使用Alien进行文件转换:
sudo alien package_name.rpm
- 使用dpkg安装.deb文件:
sudo dpkg -i package_name.deb
Node.js和Python:中的Docker for Oracle Database Applications中讨论了在Docker中安装Instant Client的一些不同方法
例如:
WORKDIR /opt/oracle
RUN apt-get update &&
apt-get install -y libaio1 unzip wget
RUN wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip &&
unzip instantclient-basiclite-linuxx64.zip &&
rm -f instantclient-basiclite-linuxx64.zip &&
cd instantclient* &&
rm -f *jdbc* *occi* *mysql* *jar uidrvci genezi adrci &&
echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf &&
ldconfig
谢谢你的回答,但我在这里找到了一个提示:将Oracle Instant客户端安装到Python cx_Oracle 的Docker容器中
对我有效的是在Dockerfile中添加以下内容:
WORKDIR /opt/oracle
RUN apt-get update && apt-get install -y libaio1 wget unzip
&& wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip
&& unzip instantclient-basiclite-linuxx64.zip
&& rm -f instantclient-basiclite-linuxx64.zip
&& cd /opt/oracle/instantclient*
&& echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf
&& ldconfig
# add instant client to path
ENV PATH=$PATH:/opt/oracle/instantclient_21_1
谨致问候。