Gitlab-runner dind 导致错误:作业失败(系统故障):来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:380:
Posted
技术标签:
【中文标题】Gitlab-runner dind 导致错误:作业失败(系统故障):来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:380:【英文标题】:Gitlab-runner dind results in ERROR: Job failed (system failure): Error response from daemon: OCI runtime create failed: container_linux.go:380: 【发布时间】:2021-08-22 23:41:18 【问题描述】:项目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】:我通过 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 引擎。
【讨论】:
以上是关于Gitlab-runner dind 导致错误:作业失败(系统故障):来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:380:的主要内容,如果未能解决你的问题,请参考以下文章
当 URL 在浏览器中工作时,啥可能导致“连接 ETIMEDOUT”错误?
gitlab-runner config for docker runner