Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

464
Views
El corredor GitLab CI no puede conectarse a unix:///var/run/docker.sock en kubernetes

GitLab se está ejecutando en el clúster de Kubernetes. Runner no puede crear una imagen acoplable con artefactos de construcción. Ya probé varios enfoques para solucionar esto, pero no tuve suerte. Aquí hay algunos fragmentos de configuración:

.gitlab-ci.yml

 image: docker:latest services: - docker:dind variables: DOCKER_DRIVER: overlay stages: - build - package - deploy maven-build: image: maven:3-jdk-8 stage: build script: "mvn package -B --settings settings.xml" artifacts: paths: - target/*.jar docker-build: stage: package script: - docker build -t gitlab.my.com/group/app . - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab.my.com/group/app - docker push gitlab.my.com/group/app

config.toml

 concurrent = 1 check_interval = 0 [[runners]] name = "app" url = "https://gitlab.my.com/ci" token = "xxxxxxxx" executor = "kubernetes" [runners.kubernetes] privileged = true disable_cache = true

Registro de etapa del paquete:

 running with gitlab-ci-multi-runner 1.11.1 (a67a225) on app runner (6265c5) Using Kubernetes namespace: default Using Kubernetes executor with image docker:latest ... Waiting for pod default/runner-6265c5-project-4-concurrent-0h9lg9 to be running, status is Pending Waiting for pod default/runner-6265c5-project-4-concurrent-0h9lg9 to be running, status is Pending Running on runner-6265c5-project-4-concurrent-0h9lg9 via gitlab-runner-3748496643-k31tf... Cloning repository... Cloning into '/group/app'... Checking out 10d5a680 as master... Skipping Git submodules setup Downloading artifacts for maven-build (61)... Downloading artifacts from coordinator... ok id=61 responseStatus=200 OK token=ciihgfd3W $ docker build -t gitlab.my.com/group/app . Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ERROR: Job failed: error executing remote command: command terminated with non-zero exit code: Error executing in Docker Container: 1

¿Qué estoy haciendo mal?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

No es necesario usar esto:

 DOCKER_DRIVER: overlay

porque parece que OVERLAY no es compatible, por lo que el contenedor svc-0 no puede comenzar con él:

 $ kubectl logs -f `kubectl get pod |awk '/^runner/{print $1}'` -c svc-0 time="2017-03-20T11:19:01.954769661Z" level=warning msg="[!] DON'T BIND ON ANY IP ADDRESS WITHOUT setting -tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING [!]" time="2017-03-20T11:19:01.955720778Z" level=info msg="libcontainerd: new containerd process, pid: 20" time="2017-03-20T11:19:02.958659668Z" level=error msg="'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded."

Además, agregue export DOCKER_HOST="tcp://localhost:2375" a docker-build:

 docker-build: stage: package script: - export DOCKER_HOST="tcp://localhost:2375" - docker build -t gitlab.my.com/group/app . - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab.my.com/group/app - docker push gitlab.my.com/group/app
about 4 years ago · Santiago Trujillo Report

0

Al usar Kubernetes, debe ajustar su imagen de compilación para conectarse con el motor de Docker.

Agregue a su imagen de compilación:

 DOCKER_HOST=tcp://localhost:2375

Cita de los documentos:

También es posible ejecutar docker:dind, también conocida como la imagen docker-in-docker, pero lamentablemente necesita que los contenedores se ejecuten en modo privilegiado. Si está dispuesto a correr ese riesgo, surgirán otros problemas que pueden no parecer tan sencillos a primera vista. Debido a que el demonio de la ventana acoplable se inicia como un servicio generalmente en su .gitlab-ci.yaml, se ejecutará como un contenedor separado en su pod. Básicamente, los contenedores en pods solo comparten los volúmenes que se les asignan y una dirección IP mediante la cual pueden comunicarse entre sí mediante localhost. /var/run/docker.sock no es compartido por el contenedor docker:dind y el binario docker intenta usarlo de manera predeterminada. Para sobrescribir esto y hacer que el cliente use tcp para comunicarse con el demonio docker en el otro contenedor, asegúrese de incluir DOCKER_HOST=tcp://localhost:2375 en las variables de entorno del contenedor de compilación.

Gitlab-CI en Kubernetes

about 4 years ago · Santiago Trujillo Report

0

basado en el comentario de @Yarik, lo que funcionó para mí fue

 - export DOCKER_HOST=$DOCKER_PORT

ninguna otra respuesta funcionó.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!