2015-05-06 32 views
12

Ho il seguente file di finestra mobile, voglio installare in modo specifico un file rpm disponibile sul mio disco mentre sto creando un'istanza di finestra mobile. La mia invocazione di rpm install è come questa. Comando RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm non riuscito.Come installare un file rpm locale durante la creazione dell'istanza di finestra mobile?

C'è un modo per installare il file rpm disponibile localmente nella nuova istanza di 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 

risposta

18

mettere questa linea prima del tuo rpm -i comando:

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

allora sarete in grado di fare

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

Hmm. ADD non è riuscito per me con percorso esterno al contesto di dockerfile. Spogliava il "/" principale e riportava "nessun file o directory". La pagina di riferimento dice "Il percorso deve essere all'interno del contesto della build" e il motivo "perché il primo passo di una build finestra mobile è quello di inviare la directory di contesto (e sottodirectory) al daemon docker." https://docs.docker.com/engine/reference/builder/#add stessa limitazione sul comando COPY – gaoithe

2

Supponiamo di avere il vostro Dockerfile disponibile presso /opt/myproject/. Quindi prima bisogna inserisci rpm all'interno di /opt/myproject e quindi aggiungi

Add /xyz.rpm /xyz.rpm 

RUN rpm -i xyz.rpm 
0

mia Dockerfile constains queste due righe:

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

costruzione processo di immagine non riesce con l'errore "lstat SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm: No such file or directory "

Entrambi i file RPM si trovano nella cartella" SRC "da cui sono in esecuzione" build docker ".

Qual è il problema ??

Grazie.

0

come e addendum a ciò che altri hanno scritto qui, piuttosto che utilizzare:

RUN rpm -i xyz.rpm 

si potrebbe essere meglio fare questo:

RUN yum localinstall -y xyz.rpm 

Quest'ultimo ha i vantaggi che (a) controlla la firma, (b) scarica qualsiasi dipendenza, e (c) si assicura che YUM sia a conoscenza del pacchetto. Quest'ultimo bit è meno importante degli altri due, ma vale comunque la pena.

Problemi correlati