2015-08-07 4 views
21

Я новичок в докерах, поэтому я могу сделать это неправильно, но я пытаюсь установить Tomcat6 через Dockerfile, который вот так:Команда '/ bin/sh -c вернула ненулевой код: 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 

Его неудовлетворительную на 3-й линии с:

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

Когда я бегу Docker сборки я получаю это: this

Я использую:

  • Oracle Virtual Box V4.3.28 r100309
  • Docker на RHEL7

Заранее спасибо за любую помощь.

+0

Я наткнулся на это сообщение, ища решение для 'возвращенного ненулевого кода: 139' на сервере CentOS 7. Я решил проблему, просто удалив и снова установив докер. 'Sudo ни удалить docker.x86_64 Докер-common.x86_64 Докер-distribution.x86_64 Докер-RHEL-нажимного plugin.x86_64' ' Sudo ни удалить docker.x86_64 Докер-common.x86_64 Докер-distribution.x86_64 docker- rhel-push-plugin.x86_64' –

ответ

9

Решение изображения с ошибкой является добавление до wget CMD RUN yum -y install wget

Если вы пишете это так, это тот же самый результат, просто разные исполнения:

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

Не используйте кавычки и запятая в команде RUN.

+0

Это не имеет никакого значения, он по-прежнему дает ту же ошибку – user5201726

+3

В этом случае добавьте инструкцию 'RUN yum -y install wget' перед строкой, которая выдает ошибку. – Dharmit

+0

Спасибо, я пробовал это, но теперь он выходит с кодом 1. Это то, что отображается. http://i.imgur.com/wqmlenh.png У меня есть подписка с RedHat, и я использую ее на машине, мне нужно сделать логин-подписчик с помощью Docker? – user5201726

7

Код выхода 127 из команд оболочки означает «команда не найдена». Итак, в вашем случае кажется, что «wget» внутри кавычек не найден, когда Docker запускает его.

В некоторых случаях команда установки wget (или любого другого средства командной строки отсутствует) должна сначала запускаться в файле Docker, потому что некоторые базовые изображения Docker не будут иметь wget. Вы бы добавить строку перед неисправного командой, которая выглядит примерно так:

RUN yum install -y wget 
0

Не забывайте, вы можете добавить все библиотеки, и пакет, который нужно на одной и той же линии

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