3
votes

Le runner GitLab CI ne peut pas se connecter à tcp: // localhost: 2375 dans kubernetes

J'ai suivi ce document pour installer Gitlab sur GKE: https://docs.gitlab.com/ee/install/kubernetes/gitlab_chart. html

Les paramètres de mon installation sont:

helm upgrade --reuse-values gitlab gitlab/gitlab -f values.yaml

Ensuite, j'ai créé mon .gitlab-ci.yaml:

runners:
  privileged: true


1 commentaires

J'ai exactement le même problème


4 Réponses :


-1
votes

Le service Docker-in-Docker sera nommé d'après son nom d'image: docker. Vous devez définir DOCKER_HOST sur tcp: // docker: 2375 .


2 commentaires

J'ai déjà essayé cette solution et j'ai eu ce message: Erreur lors de la connexion: Post http: // docker: 2375 / v1.39 / auth: dial tcp: recherche docker sur 10.0.0.10:53: aucun hôte de ce type


Lors de l'utilisation de docker dans docker, les documents disent d'utiliser localhost - mais cela ne fonctionne pas non plus la réponse ci-dessus



1
votes

J'ai trouvé mon erreur. Les "Options de ligne de commande d'installation" que nous pouvons voir ici: https://gitlab.com/charts/ gitlab / blob / master / doc / installation / command-line-options.md indique que le paramètre privilégié est gitlab-runner.runners.privileged pas gitlab.gitlab-runner.runners.privileged (et cache_dir n'existe pas). Alors maintenant, c'est OK avec:

--set gitlab-runner.runners.privileged=true


5 commentaires

Cela ne fonctionne pas pour moi. J'ai encore le même problème


@NoahMartin Quelle est votre commande complète qui ne fonctionne pas?


c'était mon problème: gitlab.com/gitlab-org/gitlab-ce/issues / 64959 C'est un nouveau problème de gitlab.


Comme écrit dans le fichier gitlab-ci.yaml dans mon premier message, le DOCKER_HOST doit être tcp: // localhost: 2375 et non tcp: // docker: 2375 pour cela travailler.


Merci pour ton aide. J'ai essayé cela aussi mais je n'ai pas fonctionné. Le lien ci-dessus explique mon problème.



8
votes

Apparemment, selon ce , ce problème est plus récemment lié à docker mise à jour de son image docker: dind qui utilise la dernière version du serveur docker qui n'écoute plus à 2375 mais à 2376 .

J'ai donc mis à jour mon .gitlab-ci.yml comme suggéré dans cette entrée et cela a fonctionné pour moi:

image: docker:stable

services:
  - docker:18.09-dind

...

[UPDATE] p >

Il s'agissait d'une solution temporaire. Les images docker: stable et docker: stable-dind sont maintenant corrigées.


5 commentaires

Oh, merci pour cette mise à jour ... et que définissez-vous jusqu'à présent dans DOCKER_HOST?


OK, j'ai remis tcp: // localhost: 2375 au lieu de 2376 et ça marche à nouveau ... Bah


Salut, j'ai essayé cela (en utilisant le port 2376) dans Dind sur Kubernetes mais j'ai découvert que 2376 attend TLS. J'ai dû revenir à l'ancienne version v18 pour récupérer 2375. Puis-je activer le port 2375 non TLS dans les nouvelles versions des images Dind? Merci.


@icordoba Salut, je dois dire que c'était une solution temporaire. Les images docker: stable et docker: stable-dind n'ont plus ce problème. Concernant ce que vous avez demandé, vous trouverez peut-être une réponse à ce ici .


merci @LeandroOrdonez J'ai essayé le dernier docker: stable-dind mais il n'écoute que le port 2376 avec TLS, pas 2375. Est-il possible de le configurer pour écouter 2375 aussi?



0
votes

Cette solution utilisant les images docker: 18.09 et docker: 18.09-dind fonctionne.

.gitlab-ci.yml :

build_image:
  stage: build
  image: docker:18.09
  variables:
    DOCKER_HOST: tcp://docker:2375/
    DOCKER_DRIVER: overlay2
  services:
    - docker:18.09-dind

Plus de discussion sur ce problème: https://gitlab.com/gitlab-org/gitlab-runner/issues/4501


0 commentaires