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