Подтвердить что ты не робот

Команда '/bin/sh -c вернула ненулевой код: 127

Я новичок в docker, поэтому я мог бы сделать это неправильно, но я пытаюсь установить Tomcat6 через Dockerfile, который вот так:

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

Сбой на третьей строке:

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

Когда я запускаю сборку докеров, я получаю следующее: this

Я использую:

  • Oracle Virtual Box V4.3.28 r100309
  • Докер на RHEL7

Заранее благодарим за помощь.

4b9b3361

Ответ 1

Решение изображения с ошибкой заключается в добавлении перед 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.

Ответ 2

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

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

RUN yum install -y wget