38

我是 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

它在第三行失败了:

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

当我运行 docker build 我得到这个: 这个

我在用着:

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

提前感谢您的帮助。

4

3 回答 3

23

图片出错的解决方法是在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命令中使用引号和逗号。

于 2015-08-07T11:24:59.307 回答
18

shell 命令的退出代码 127 表示“找不到命令”。因此,在您的情况下,当 Docker 运行它时,似乎找不到引号中的“wget”。

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

RUN yum install -y wget
于 2015-08-14T06:36:18.283 回答
4

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

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

于 2018-02-24T17:45:11.080 回答