web-dev-qa-db-fra.com

Comment installer un fichier rpm local lors de la création d'une instance de docker?

J'ai le fichier Docker suivant, je veux installer spécifiquement un fichier RPM qui est disponible sur mon disque pendant que je construis une instance Docker. Mon appel de l'installation de rpm ressemble à ceci. Commande RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm échoue.

Existe-t-il un moyen d'installer le fichier rpm disponible localement sur la nouvelle instance 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
13
Subodh Nijsure

Mettez cette ligne avant votre rpm -i commande:

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

Ensuite, vous pourrez faire

RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
23
Vitaly Isaev

As et addendum à ce que d'autres ont écrit ici, plutôt que d'utiliser:

RUN rpm -i xyz.rpm

Vous feriez mieux de faire ceci:

RUN yum install -y xyz.rpm

Ce dernier a l'avantage (a) de vérifier la signature, (b) de télécharger les dépendances et (c) de s'assurer que YUM est au courant du paquet. Ce dernier morceau est moins important que les deux autres, mais il en vaut quand même la peine.

6
Keith Gaughan

Supposons que votre Dockerfile soit disponible sur /opt/myproject/. Ensuite, vous devez d'abord mettre rpm à l'intérieur /opt/myproject puis ajoutez

Add /xyz.rpm /xyz.rpm

RUN rpm -i xyz.rpm
3
amit srivastava

mon Dockerfile contient ces deux lignes:

[...]
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
[...]

Le processus de création d'image échoue avec l'erreur "lstat SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm: aucun fichier ou répertoire de ce type"

Les deux fichiers RPM se trouvent dans le dossier "SRC" d'où je lance "docker build".

Quel est le problème??

Merci.

0
Daniel Ruiz Molina