我是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时,我得到了这个:
我正在使用:
提前感谢您的帮助。
答案 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/*