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

use*_*726 32 rhel tomcat6 docker rhel7 dockerfile

我是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 Code Online (Sandbox Code Playgroud)

它在第3行失败了:

  RUN "wget", "http://www.us.apache.org/dist/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz"
Run Code Online (Sandbox Code Playgroud)

当我运行docker build时,我得到了这个: 这个

我正在使用:

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

在此先感谢您的帮助.

Dha*_*mit 17

有错误的图像解决方案是在之前添加 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 Code Online (Sandbox Code Playgroud)

不要在RUN命令中使用引号和逗号.

  • 在这种情况下,在抛出错误的行之前添加语句`RUN yum -y install wget`. (3认同)

Rob*_*ley 15

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

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

RUN yum install -y wget
Run Code Online (Sandbox Code Playgroud)