DinD gitlab-runner:警告服务runner-xxx-project-xx-concurrent-x-docker-x可能未正确启动

8mmmxcuj  于 2023-04-29  发布在  Docker
关注(0)|答案(1)|浏览(117)

我在虚拟机上测试了一个gitlab-runner,它运行得很好。我在使用docker-in-docker executor部分学习了这个教程:
https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
当我在我的开发服务器上注册一个配置完全相同的runner时,runner在提交时被调用,但我得到了很多错误:

*** WARNING: Service runner-XXX-project-XX-concurrent-X-docker-X probably didn't start properly.

ContainerStart: Error response from daemon: Cannot link to a non running container: /runner-XXX-project-XX-concurrent-X-docker-X AS /runner-XXX-project-XX-concurrent-X-docker-X-wait-for-service/service (executor_docker.go:1337:1s)

DEPRECATION: this GitLab server doesn't support refspecs, gitlab-runner 12.0 will no longer work with this version of GitLab

$ docker info
error during connect: Get http://docker:2375/v1.39/info: dial tcp: lookup docker on MY.DNS.IP:53: no such host
ERROR: Job failed: exit code 1

我相信所有这些错误都是由于第一次警告。我试着:

  • 使用www. example添加第二个DNS www.example.com IP到我的机器,同样的错误
  • 在/etc/gitlab-runner/config中手动添加privileged=true。toml,相同的错误,所以它不是由privileged = true参数引起的
  • 将tcp://docker:2375替换为tcp://localhost:2375,当docker info

gitlab-ci.yml内容:

image: docker:stable
 stages :
  - build

 variables:
  DOCKER_HOST: tcp://docker:2375/
  DOCKER_DRIVER: overlay2

 services:
  - docker:dind

 before_script:
  - docker info

 build-folder1:
   stage: build
   script:
    - docker build -t image1 folder1/
    - docker run --name docker1 -p 3001:5000 -d image1
   only: 
    refs:
     - dev
    changes:
     - folder1/**/*

 build-folder2:
   stage: build
   script:
     - docker build -t image2 folder2/
     - docker run --name docker2 -p 3000:3000 -d image2
   only:
     refs:
      - dev
     changes:
      - folder2/**/*
  • 如果分支dev的folder 1被修改,我们构建并运行docker 1
  • 如果分支dev的folder 2被修改,我们构建并运行docker 2

dev server上的docker版本:

docker -v 
Docker version 17.03.0-ce, build 3a232c8

dev服务器上的gitlab-runner版本:

gitlab-runner -v
Version:      11.10.1
5n0oy7gb

5n0oy7gb1#

我将尝试为您提供一个答案,因为我在尝试运行DinD时解决了同样的问题。
此消息:

***警告:Service runner-XXX-project-XX-concurrent-X-docker-X可能没有正确启动。

表示您没有正确配置Runner,或者它没有通过gitlab-ci.yml文件链接。您应该能够在Gitlab的日志页面中检查跑步者的ID。
首先,验证您是否正确输入了gitlab-runner register命令,并使用了正确的注册令牌。
第二,由于您正在手动设置特定的运行器,请验证您是否已为其设置了一些唯一的标记(例如:build_docker),并从您的gitlab-ci.yml文件调用它。例如:

...
build-folder1:
   stage: build
   script:
    - docker build -t image1 folder1/
    - docker run --name docker1 -p 3001:5000 -d image1
   tags:
    - build_docker
...

这样应该行得通。

相关问题