Как установить локальный файл rpm при создании экземпляра докера? - программирование

Как установить локальный файл rpm при создании экземпляра докера?

У меня есть следующий файл докеров, я хочу специально установить файл rpm, который доступен на моем диске, поскольку я создаю экземпляр докера. Мой вызов установки rpm выглядит так. команда RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm не удается.

Есть ли способ установить rpm файл, доступный локально для нового экземпляра Docker?

FROM centos:latest
    RUN yum -y install yum-utils
    RUN yum -y install python-setuptools
    RUN easy_install supervisor
    RUN mkdir -p /var/log/supervisor
    RUN yum -y install which
    RUN yum -y install git
    # Basic build dependencies.
    RUN yum -y install  autoconf build-essential unzip zip
    # Gold linker is much faster than standard linker.
    RUN yum -y install  binutils
    # Developer tools.
    RUN yum -y install bash-completion curl emacs git man-db python-dev python-pip vim tar
    RUN yum -y install gcc gcc-c++ kernel-devel make
    RUN yum -y install swig
    RUN yum -y install wget
    RUN yum -y install python-devel
    RUN yum -y install ntp
    RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
4b9b3361

Ответ 1

Поместите эту строку перед командой rpm -i:

ADD /host/abs/path/to/chrpath-0.13-14.el7.x86_64.rpm /chrpath-0.13-14.el7.x86_64.rpm

Затем вы сможете сделать

RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm

Ответ 2

Как и дополнение к тому, что другие написали здесь, а не используя:

RUN rpm -i xyz.rpm

Вам может быть лучше сделать это:

RUN yum install -y xyz.rpm

Последний имеет преимущества в том, что (а) он проверяет подпись, (б) загружает любые зависимости и (в) удостоверяется, что YUM знает о пакете. Этот последний бит менее важен, чем два других, но все же стоит.

Ответ 3

Предположим, что у вас есть файл Dockerfile в /opt/myproject/. Затем сначала вам нужно поместить rpm внутрь /opt/myproject, а затем добавить

Add /xyz.rpm /xyz.rpm

RUN rpm -i xyz.rpm

Ответ 4

my Dockerfile содержит две строки:

[...]
ADD SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm  /tmp/kernel-3.10.0-327.13.1.el7.x86_64.rpm
ADD SRC/kernel-devel-3.10.0-327.13.1.el7.x86_64.rpm /tmp/kernel-devel-3.10.0-327.13.1.el7.x86_64.rpm
[...]

Сбой процесса построения образа с ошибкой "lstat SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm: нет такого файла или каталога"

Оба файла RPM находятся в папке "SRC", откуда я запускаю "сборку докеров".

В чем проблема?

Спасибо.