docker - container - El comando ''/ bin/sh-c devolvió un código distinto de cero: 127
redhat registry docker (3)
Soy nuevo en la ventana acoplable, así que podría estar haciendo esto mal, pero estoy tratando de instalar Tomcat6 a través de un Dockerfile
que de esta manera:
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
Está fallando en la tercera línea con el:
RUN "wget", "http://www.us.apache.org/dist/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz"
Cuando ejecuto la compilación de docker obtengo esto:
Estoy usando:
- Oracle Virtual Box V4.3.28 r100309
- Docker en RHEL7
Gracias de antemano por cualquier ayuda.
El código de salida 127 de los comandos de shell significa "comando no encontrado". Entonces, en su caso, parece que el "wget" entre comillas no se encuentra cuando Docker lo ejecuta.
En algunos casos, el comando para instalar wget (o la herramienta de línea de comandos que falte) debe ejecutarse primero en el Dockerfile porque algunas imágenes de Docker base no tendrán wget. Deberías agregar una línea antes del comando que falla y se ve así:
RUN yum install -y wget
La solución a la imagen con error es agregar antes de wget CMD RUN yum -y install wget
Si lo escribes así, es el mismo resultado, solo ejecución diferente:
RUN wget http://www.us.apache.org/dist/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz
No uses las comillas y la coma en el comando RUN
.
No olvides que puedes agregar todas las librerías y paquetes que necesites en la misma línea.
RUN cd /tmp /
&& apt-get update /
&& apt-get install -y curl apt-utils wget unzip/
&& rm -rf /var/lib/apt/lists/*