[英]Ubuntu 20.04 Dockerfile getting a E: Unable to locate package yum error
我的目標是從 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
問題是 - 我似乎無法訪問“yum”。 結果,我嘗試添加它,如下所示。
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 構建時,我收到以下錯誤: E: Unable to locate package yum
似乎 yum 出現在 Ubuntu 的早期版本中(例如:Ubuntu 16),但它不在 Ubuntu 中或缺少某些東西。 如果 yum 不在 Ubuntu 20 中,怎么添加呢?
TIA
Yum 僅在 Centos 發行版中受支持,
如果您使用的是 Ubuntu(您的基本映像是),則必須對 Dockerfile 中的所有 package 管理操作使用 apt
如果您只能獲取“oracle-instantclient”package 的 RPM 文件,作為一種解決方法,您可以在 dockerfile 中包含以下內容:
sudo apt-get install alien
wget [repository address]/package_name.rpm
sudo alien package_name.rpm
sudo dpkg -i package_name.deb
Some of the various ways to install Instant Client in Docker are discussed in Docker for Oracle Database Applications in Node.js and Python :
例如:
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
感謝您提供任何答案,但我在這里找到了提示: Install Oracle Instant client into Docker container for Python cx_Oracle
對我有用的是在 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
問候。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.