2015-08-07 29 views
21

Sono nuovo alla finestra mobile in modo che si possa sbagliare, ma sto cercando di installare Tomcat6 tramite uno Dockerfile che come questo:Il comando '/ bin/sh -c ha restituito un codice diverso da zero: 127

FROM rhel7:latest 
RUN cd /tmp 
RUN "wget", "http://www.us.apache.org/dist/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz" 
RUN tar xzf apache-tomcat-6.0.44.tar.gz 
RUN mv apache-tomcat-6.0.44 /usr/local/tomcat6 
RUN cd /usr/local/tomcat6 
Run ./bin/start.sh 

la sua mancanza al 3 ° linea con il:

RUN "wget", "http://www.us.apache.org/dist/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz" 

Quando eseguo la build finestra mobile ottengo questo: this

sto usando:

  • Oracle Virtual Box V4.3.28 r100309
  • Docker su RHEL7

Grazie in anticipo per qualsiasi aiuto.

+0

Mi sono imbattuto in questo post alla ricerca di una soluzione per un 'restituito un codice diverso da zero: 139' in un server CentOS 7. Ho risolto il mio problema semplicemente disinstallando e reinstallando nuovamente la finestra mobile. 'sudo yum rimuovere docker.x86_64 finestra mobile-common.x86_64 finestra mobile-distribution.x86_64 finestra mobile-rhel-push-plugin.x86_64' ' sudo yum rimuovere docker.x86_64 finestra mobile-common.x86_64 finestra mobile-distribution.x86_64 docker- rhel-push-plugin.x86_64' –

risposta

9

soluzione per l'immagine con l'errore è quello di aggiungere prima del wget CMD RUN yum -y install wget

Se si scrive in questo modo, è lo stesso risultato, l'esecuzione solo diverso:

RUN wget http://www.us.apache.org/dist/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz 

Non utilizzare le virgolette e virgola nel comando RUN.

+0

Non fa alcuna differenza, continua a dare lo stesso errore – user5201726

+3

In tal caso, aggiungi l'istruzione 'Esegui yum -y install wget' prima della riga che genera l'errore. – Dharmit

+0

Grazie, ci sto provando, ma ora esce con il codice 1. Questo è ciò che viene visualizzato. http://i.imgur.com/wqmlenh.png Ho un abbonamento con RedHat e lo sto usando sulla macchina, devo effettuare un login gestore sottoscrizioni con Docker? – user5201726

7

Il codice di uscita 127 dai comandi della shell indica "comando non trovato". Quindi, nel tuo caso sembra che il "wget" tra virgolette non venga trovato quando Docker lo esegue.

In alcuni casi, il comando per installare wget (o qualsiasi altro strumento della riga di comando è mancante) deve essere prima eseguito nel file Docker poiché alcune immagini Docker di base non avranno wget. Si potrebbe aggiungere una riga prima del comando in mancanza di questo sembra qualcosa di simile:

RUN yum install -y wget 
0

Non dimenticate che è possibile aggiungere tutti lib e il pacchetto è necessario sulla stessa linea

RUN cd /tmp \ 
 
&& apt-get update \ 
 
&& apt-get install -y curl apt-utils wget unzip\ 
 
&& rm -rf /var/lib/apt/lists/*