Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The command '/bin/sh -c returned a non-zero code: 127

I'm new to docker so I might be doing this wrong, but I'm trying to install Tomcat6 through a Dockerfile which like this:

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 

Its failing on the 3rd line with the:

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

When I run the docker build I get this: this

I'm using:

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

Thanks in advance for any help.

like image 729
user5201726 Avatar asked Aug 07 '15 10:08

user5201726


2 Answers

Solution to the image with error is to add before the wget CMD RUN yum -y install wget

If you write it like this, it is the same result, just different execution:

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

Don't use the quotes and comma in RUN command.

like image 79
Dharmit Avatar answered Sep 23 '22 06:09

Dharmit


Exit code 127 from shell commands means "command not found". So, in your case it seems the "wget" within quotes is not being found when Docker runs it.

In some cases, the command to install wget (or whatever command-line tool is missing) must first be run in the Dockerfile because some base Docker images will not have wget. You would add a line before the failing command that looks something like this:

RUN yum install -y wget 
like image 45
Rob Bailey Avatar answered Sep 23 '22 06:09

Rob Bailey