安装和配置 CI/CD 时出现问题

Rom*_*ush 2 continuous-integration gitlab docker gitlab-ci gitlab-ci-runner

我们拥有完全配置且运行完美的企业 gitlab 服务器。现在我尝试在上面使用 CI/CD。
1. 我们的系统管理员在公司网络上给了我一个安装了 ubuntu 20.04 的虚拟服务器。
2.我阅读(并理解)有关安装和配置 gitlab runner、docker 引擎、docker machine、docker hub、virtualbox 软件的文档。
3.我在虚拟服务器上安装了Gitlab Runner。
4. 我使用“shell”类型注册运行程序
5. 使用此.gitlab-ci.yml文件创建一个项目:

test_variable:
  before_script:
    - docker info
    - docker run --rm hello-world
  stage: test
  script:
    - echo $CI_JOB_STAGE
    - ls -la
    - tree
Run Code Online (Sandbox Code Playgroud)
  1. 我启动 CI/CD 管道并确保一切正常。
    然后我尝试在 docker 中运行它:
  2. 安装docker引擎。
  3. 安装docker机器(来自gitlab的fork版本)(我尝试了两个版本)
  4. 我创造了一台新机器。一切都很完美。
    现在我正在本地测试它 - 运行一个 docker,运行新的 docker 机器,创建新机器并再次运行它 - 一切正常。
  5. 我注册了一个新的跑步者,类型为“docker”。
  6. 这个新的运行程序不能使用相同的.gitlab-ci.yml文件:
Running with gitlab-runner 11.2.0 (11.2.0)
   on docker-runner zQ6fuswY
 Using Docker executor with image ubuntu ...
 Pulling docker image gitlab-runner-helper:11.2.0 ...
 ERROR: Failed to create container volume for /var/builds/work/rbushnyakov 
  Error response from daemon: pull access denied for gitlab-runner-helper, 
  repository does not exist or may require 'docker login': denied: requested 
  access to the resource is denied (executor_docker.go:166:1s)
 ERROR: Job failed: Error response from daemon: pull access denied for gitlab-runner-helper,
  repository does not exist or may require 'docker login': denied: requested access to the 
  resource is denied (executor_docker.go:166:1s)
Run Code Online (Sandbox Code Playgroud)

我做错了什么以及我的错误是什么?

我的/etc/gitlab-runner/config.toml

  [[runners]]
    name = "simple-runner"
    url = "https://git.our.corporate.site/"
    token = "XXXXXXXXXXXXX"
    executor = "shell"
    shell = "bash"
    builds_dir = "/var/builds/work/"
    cache_dir = "/var/builds/cache/"
    [runners.cache]
  [[runners]]
    name = "docker-runner"
    url = "https://git.our.corporate.site/"
    token = "XXXXXXXXXXXXXXX"
    executor = "docker"
    builds_dir = "/var/builds/work/"
    cache_dir = "/var/builds/cache/"
    [runners.docker]
      tls_cert_path = "/root/.docker/machine/machines/default"
      tls_verify = false
      image = "ubuntu"
      privileged = true
      disable_cache = false
      volumes = ["/var/builds/cache"]
      shm_size = 0
    [runners.cache]
Run Code Online (Sandbox Code Playgroud)

感谢您的关注,真心希望能得到帮助。

Rom*_*ush 6

我已经解决了这个问题。感谢这个解决方案。问题是 - 引用:

...发生这种情况的原因是我们在 gitlab-runner --version 输出中使用 Git 修订版来提取正确的帮助程序映像,并且官方 GitLab Runner 二进制文件输出提交 SHA 而不是标签:...

因此,在第一次加载期间,docker引擎想要获取某些标签,但这些标签丢失了。因此,我下载了 gitlab-runner-helper 版本 11.2.0,它具有不同的可用标签,并在本地重命名。

点击链接并仔细阅读。那里有更详细的描述。