J'ai le Dockerfile suivant:
Removing intermediate container 63a3ae1d7390 Step 3/3 : COPY sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/ lstat sonar-gitlab-plugin-4.0.0.jar: no such file or directory
Et j'obtiens l'erreur suivante lors de la copie du fichier:
FROM sonarqube RUN wget https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar COPY sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
Comment puis-je copier le fichier dans ce cas?
3 Réponses :
Vous exécutez wget à l'intérieur du conteneur, mais vous essayez ensuite de le COPIER de la machine hôte vers le conteneur. Pour copier d'un emplacement de conteneur à un autre, utilisez simplement cp:
RUN wget -o /opt/sonarqube/extensions/plugins/ \
https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar
Mieux encore, utilisez simplement wget -O pour enregistrer le fichier dans l'emplacement souhaité dès le départ.
RUN wget https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar \ && cp sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
Vous essayez de copier un fichier situé dans votre conteneur comme s'il s'agissait d'un fichier local, Docker ne peut donc pas le trouver.
Utilisez ADD comme ceci devrait le faire fonctionner:
FROM sonarqube ADD https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
c'est plus "dockerlike"
La commande
COPY copie le fichier de l'hôte vers le conteneur.
Pour toute commande que vous souhaitez exécuter à l'intérieur du conteneur, vous avez besoin de RUN:
RUN wget https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar \ && cp sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
Même erreur lorsque je remplace par ADD.