Gitlab-runner dind 导致错误:作业失败(系统故障):来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:380:

时间:2021-06-05 00:45:16

标签: docker gitlab gitlab-ci gitlab-ci-runner docker-in-docker

项目 gitlab-runner 的执行者是 docker。我尝试运行 docker-in-docker 并从管道中收到以下错误:

<块引用>

错误:作业失败(系统故障):来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:380:导致启动容器进程:process_linux.go:545:导致容器初始化:process_linux.go:508:设置procHooks 进程的 cgroup 配置导致:结果设备 cgroup 与目标模式不匹配:未知 (docker.go:385:0s)

我遵循了这个指南:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-continuous-deployment-pipeline-with-gitlab-ci-cd-on-ubuntu-18-04 并且在我阅读了 gitlab CI/CD 和 gitlab-runner 的文档之后,但我不知道如何解决这个问题。

这是当前我的 config.toml 文件:

check_interval = 0
log_level = "debug"

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-runner"
  url = my-url
  token = token
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "docker:20"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0

这是我的 gitlab-ci.yaml

stages:
  - publish

variables:
  DOCKER_TLS_CERTDIR: ""

publish:
  image: docker:20
  stage: publish
  tags:
    - publish
  services:
    - docker:20-dind
  script:
    - docker version

首先我不明白错误信息,其次如何解决?

1 个答案:

答案 0 :(得分:0)

我通过降级 docker 解决了这个问题:

sudo apt-get install --reinstall docker-ce=5:18.09.9~3-0~ubuntu-bionic docker-ce-cli=5:18.09.9~3-0~ubuntu-bionic docker-ce-rootless-extras containerd.io=1.3.9-1

问题是我在装有 Ubuntu 18 的 V-Server (Virtuozzo) 上运行。看来 Virtuozzo 目前不支持最新的 Docker 引擎。