Команда '/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
Заранее благодарим за помощь.
Ответы
Ответ 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