Je suis nouveau sur docker, alors je peux ne pas le faire correctement, mais j'essaie d'installer Tomcat6 via une Dockerfile
qui ressemble à ceci:
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
Son échec sur la 3ème ligne avec le:
RUN "wget", "http://www.us.Apache.org/dist/Tomcat/tomcat-6/v6.0.44/bin/Apache-Tomcat-6.0.44.tar.gz"
Lorsque je lance le docker, je reçois ceci:
J'utilise:
Merci d'avance pour votre aide.
La solution à l’image avec erreur consiste à ajouter avant le wget CMD
RUN yum -y install wget
Si vous écrivez comme ça, c'est le même résultat, juste une exécution différente:
RUN wget http://www.us.Apache.org/dist/Tomcat/tomcat-6/v6.0.44/bin/Apache-Tomcat-6.0.44.tar.gz
N'utilisez pas les guillemets et les virgules dans la commande RUN
.
Le code de sortie 127 des commandes du shell signifie "commande introuvable". Donc, dans votre cas, il semble que le "wget" entre guillemets ne soit pas trouvé lorsque Docker l'exécute.
Dans certains cas, la commande d'installation de wget (ou de tout outil de ligne de commande manquant) doit d'abord être exécutée dans le fichier Docker, car certaines images de base de Docker n'auront pas wget. Vous ajouteriez une ligne avant la commande défaillante qui ressemble à ceci:
RUN yum install -y wget
N'oubliez pas que vous pouvez ajouter toute la lib et le paquet dont vous avez besoin sur la même ligne
RUN cd /tmp \
&& apt-get update \
&& apt-get install -y curl apt-utils wget unzip\
&& rm -rf /var/lib/apt/lists/*