命令'/ bin / sh -c返回非零代码:127

时间:2015-08-07 10:56:13

标签: docker tomcat6 rhel dockerfile rhel7

我是docker的新手,所以我可能做错了,但我正试图通过这样的Dockerfile安装Tomcat6:

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 build时,我得到了这个: this

我正在使用:

  • Oracle Virtual Box V4.3.28 r100309
  • RHEL7上的Docker

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:13)

有错误的图像解决方案是在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

请勿在{{1​​}}命令中使用引号和逗号。

答案 1 :(得分:13)

从shell命令退出代码127意味着"命令未找到"。所以,在你的情况下,似乎" wget"当Docker运行它时,找不到引号内。

在某些情况下,必须首先在Dockerfile中运行安装wget(或者缺少任何命令行工具)的命令,因为一些基本的Docker镜像不会有wget。您可以在失败的命令之前添加一行,如下所示:

RUN yum install -y wget

答案 2 :(得分:1)

不要忘记您可以在同一行添加所需的所有lib和包

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