Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

469
Visualizações
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?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

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
over 4 years ago · Santiago Trujillo Relatório

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

over 4 years ago · Santiago Trujillo Relatório

0

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

 - export DOCKER_HOST=$DOCKER_PORT

ninguna otra respuesta funcionó.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda