domiq44 Posté(e) le 29 mars Partager Posté(e) le 29 mars (modifié) Bonjour, J'utilise docker 26.0.0 via l'IHM Portainer. J'ai créé les 2 containers suivants avec succès: Jenkins sur l'url http://0.0.0.0:32780 (localhost) GitLAb sur l'url http://0.0.0.0:32769 (localhost) Utilisés indépendemment, ces 2 applications fonctionnent bien. Mais je ne parviens pas à les faire communiquer. Par exemple, j'ai créé un projet dans GitLab et un projet sous Jenkins. Le projet sous Jenkins doit faire un "git clone" du projet sous GitLab, mais ça ne fonctionne pas. Pourtant j'ai bien créé un jeton "Personal Access Token" sous GitLab de type "GitLab Token" ert de scope "API". Et j'ai bien créé un crédential sous Jenkins qui utilise ce jeton (token). Mais le test de connexion n'aboutit jamais 😞 J'obtiens tout le temps : Client error: Connect to 0.0.0.0:32769 [/0.0.0.0] failed: Connection refused (Connection refused) Si quelqu'un a une idée ? Merci. Dominique Niveau : Néophyte Image : portainer/portainer-ce:latest, jenkins/jenkins-lts-jdk11, gitlab/gitlab-ce:latest Modifié le 29 mars par domiq44 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 31 mars Partager Posté(e) le 31 mars Le 29/03/2024 à 6:33 PM, domiq44 a dit : http://0.0.0.0:32780 (localhost) 0.0.0.0 ce n'est pas localhost (127.0.0.1), ce n'est même pas une interface, c'est un wildcard pour désigner toutes les IPv4. Si tes conteneurs sont dans un même réseau bridge personnalisé, ils peuvent communiquer l'un avec l'autre via leur nom de conteneur. S'ils sont définis dans la même stack, ils peuvent également communiquer par leur nom de service. Pour joindre Gitlab l'URL est donc http://<nom_du_conteneur_gitlab>:32769 (sans les accolades) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
domiq44 Posté(e) le 31 mars Auteur Partager Posté(e) le 31 mars (modifié) Bonsoir et merci .Shad. Voici mes containers qui sont dans un même réseau bridge, celui par défaut : Finalement, si j'utilise ladresse IP (je l'ai flouté dans la copie d'écran) comme ceci ça fonctionne : GitLab : http://<IP Address de GitLab>:8080 Jenkins : http://<IP Address de Jenkins>:80 Par contre, si je prends le nom du container, ça ne fonctionne pas 😞 Pour exemple, ceci ne fonctionne hélas pas : GitLab : http://gitlab:32770 Jenkins : http://jenkins:32771 Merci pour votre aide 😉 Modifié le 31 mars par domiq44 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 1 avril Partager Posté(e) le 1 avril Il y a 12 heures, domiq44 a dit : Finalement, si j'utilise ladresse IP (je l'ai flouté dans la copie d'écran) comme ceci ça fonctionne : Il n'y a aucun intérêt à flouter une IP privée, ce n'est pas routable publiquement, et ça donne des infos pour la résolution du problème. Dans le réseau bridge par défaut, la résolution DNS par nom de conteneur ne fonctionne pas, il faut créer un réseau bridge personnalisé. Il peut être interne (créé et supprimé suivant l'état des conteneurs qui l'intègrent) ou externe (persistant). Comment tu as créé tes conteneurs ? via l'UI DSM sans ou avec projet ? Via l'UI Portainer ? en ligne de commande ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
domiq44 Posté(e) le 1 avril Auteur Partager Posté(e) le 1 avril Il y a 11 heures, .Shad. a dit : Comment tu as créé tes conteneurs ? via l'UI DSM sans ou avec projet ? Via l'UI Portainer ? en ligne de commande Je les ai créé via l'UI Portainer. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 1 avril Partager Posté(e) le 1 avril il y a 45 minutes, domiq44 a dit : Je les ai créé via l'UI Portainer. Si c'est le réseau en 172.17, les conteneurs ne peuvent pas communiquer entre eux nativement, quelles sont les IP de tes conteneurs ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
domiq44 Posté(e) le 2 avril Auteur Partager Posté(e) le 2 avril Il y a 8 heures, .Shad. a dit : Si c'est le réseau en 172.17, les conteneurs ne peuvent pas communiquer entre eux nativement, quelles sont les IP de tes conteneurs ? Oui c'est bien ça : 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 2 avril Partager Posté(e) le 2 avril @domiq44 Tu dois créer un réseau, que ce soit depuis Portainer, Container Manager ou en ligne de commande, par exemple : Et y adjoindre tes conteneurs. Une fois tous membres d'un même "user-defined network", ils pourront communiquer entre eux par leur nom de conteneur. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
domiq44 Posté(e) le 2 avril Auteur Partager Posté(e) le 2 avril (modifié) Voilà qui est fait @.Shad. Et j'y ai adjoint les containers Jenkins et GitLab : J'ai laissé le container Portainer avec le network bridge par défaut. Ce qui done : Modifié le 2 avril par domiq44 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 2 avril Partager Posté(e) le 2 avril @domiq44 Ok, mais ça marche ? 😄 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
domiq44 Posté(e) le 3 avril Auteur Partager Posté(e) le 3 avril (modifié) Il y a 22 heures, .Shad. a dit : @domiq44 Ok, mais ça marche ? 😄 Ca va mieux, mais ça ne marche pas encore 😞 Voici ce que j'ai paramétré : Puis : Cool ! Les test de connexion fonctionne enfin 🙂 Puis le petit projet test : Qui plante lors du build : Started by user Dominique Crétel Running as SYSTEM Building in workspace /var/jenkins_home/workspace/PremierGit The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/PremierGit/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url http://gitlab/root/jenkins-helloworld # timeout=10 Fetching upstream changes from http://gitlab/root/jenkins-helloworld > git --version # timeout=10 > git --version # 'git version 2.39.2' > git fetch --tags --force --progress -- http://gitlab/root/jenkins-helloworld +refs/heads/*:refs/remotes/origin/* # timeout=10 ERROR: Error fetching remote repo 'origin' hudson.plugins.git.GitException: Failed to fetch from http://gitlab/root/jenkins-helloworld at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:999) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1241) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1305) at hudson.scm.SCM.checkout(SCM.java:540) at hudson.model.AbstractProject.checkout(AbstractProject.java:1248) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:649) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:85) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:521) at hudson.model.Run.execute(Run.java:1895) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --force --progress -- http://gitlab/root/jenkins-helloworld +refs/heads/*:refs/remotes/origin/*" returned status code 128: stdout: stderr: remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See http://gitlab/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied fatal: Authentication failed for 'http://gitlab/root/jenkins-helloworld.git/' at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2846) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2185) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:635) at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:997) ... 11 more ERROR: Error fetching remote repo 'origin' Finished: FAILURE Modifié le 3 avril par domiq44 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 3 avril Partager Posté(e) le 3 avril Faut préciser les ports à la suite du nom de conteneur, à moins que tout soit sur le port 80 ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
domiq44 Posté(e) le 3 avril Auteur Partager Posté(e) le 3 avril (modifié) il y a une heure, .Shad. a dit : Faut préciser les ports à la suite du nom de conteneur, à moins que tout soit sur le port 80 ? Les urls externes à Docker sont : Jenkins (32789:8080) : http://localhost:32789/ GitLab (32791:80) : http://localhost:32791/root/jenkins-helloworld GitLab, quant à lui, est sur le port 80. Ah oui ! Je ne l'avais pas vu, mais j'ai ça qui n'est pas accepté : Modifié le 3 avril par domiq44 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 4 avril Partager Posté(e) le 4 avril Je ne sais pas si ça répond à ton problème : https://gitlab.com/gitlab-org/gitlab-foss/-/issues/38910 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
domiq44 Posté(e) le 5 avril Auteur Partager Posté(e) le 5 avril (modifié) Le 04/04/2024 à 6:45 AM, .Shad. a dit : Je ne sais pas si ça répond à ton problème : https://gitlab.com/gitlab-org/gitlab-foss/-/issues/38910 Il y a un mieux 😁 J'ai corrigé ici: où j'ai flouté le token et voici le résultat du build : Started by user Dominique Crétel Running as SYSTEM Building in workspace /var/jenkins_home/workspace/PremierGit The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/PremierGit/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url http://root:personal_access_token@gitlab/root/jenkins-helloworld # timeout=10 Fetching upstream changes from http://root@gitlab/root/jenkins-helloworld > git --version # timeout=10 > git --version # 'git version 2.39.2' > git fetch --tags --force --progress -- http://root:personal_access_token@gitlab/root/jenkins-helloworld +refs/heads/*:refs/remotes/origin/* # timeout=10 > git rev-parse refs/remotes/origin/main^{commit} # timeout=10 Checking out Revision d0211590b94a817824ebff9882cc83ba25fd3bbb (refs/remotes/origin/main) > git config core.sparsecheckout # timeout=10 > git checkout -f d0211590b94a817824ebff9882cc83ba25fd3bbb # timeout=10 Commit message: "Add new file" > git rev-list --no-walk d0211590b94a817824ebff9882cc83ba25fd3bbb # timeout=10 [PremierGit] $ /bin/sh -xe /tmp/jenkins12689535994454922481.sh + git clone http://gitlab/root/jenkins-helloworld.git Cloning into 'jenkins-helloworld'... fatal: could not read Username for 'http://gitlab': No such device or address Build step 'Execute shell' marked build as failure Finished: FAILURE où j'ai remplacé "personal_access_token" par la valeur générée pour ce token dans GitLab. J'ai l'impression que ça a un peu avancé un peu, sans aboutir. Modifié le 5 avril par domiq44 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.