首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitLab CI启动意外停靠:dind版本

GitLab CI启动意外停靠:dind版本
EN

Stack Overflow用户
提问于 2020-09-04 05:40:38
回答 1查看 957关注 0票数 0

I希望在GitLab CI中使用GitLab: dind服务来构建码头映像,但是运行程序一直启动错误的dind版本(19.03.8-dind),并在下面显示错误消息.

Error response from daemon: stat /var/lib/docker/tmp: no such file or directory

最近,在运行我的gitlab-runner的主机服务器中,我将Docker版本从18.06.1更新到19.03.12,并出现了问题。

注意:在这次升级之前,一切都很好。我试着把Docker版本降级到18.06.1,这次没有运气。GitLab运行程序使用此Docker作为执行器。

我以前使用19.03.8-dind作为停靠守护进程。我使用停靠系统修剪来删除主机中的每一个图像,但是错误仍然存在。

我按照GitLab文档配置..gitlab ci.yml。

这是..gitlab ci.yml文件

代码语言:javascript
复制
stages:
  - build

docker build:
  stage: build
  # this is my customized docker image with golang:1.14 and docker:19.03.0
  image: go-docker:1.14-19.03.0 
  services:
    - name: docker:19.03.0-dind
  variables:
    DOCKER_TLS_CERTDIR: ""
    DOCKER_HOST: tcp://docker:2375
  tags:
    - linux
  before_script:
    - docker version
  script:
    - docker build ......

停靠版本的输出是

代码语言:javascript
复制
 $ docker version
 Client: Docker Engine - Community
  Version:           19.03.0
  API version:       1.40
  Go version:        go1.12.5
  Git commit:        aeac9490dc
  Built:             Wed Jul 17 18:11:50 2019
  OS/Arch:           linux/amd64
  Experimental:      false
 Server: Docker Engine - Community
  Engine:
   Version:          19.03.8
   API version:      1.40 (minimum version 1.12)
   Go version:       go1.12.17
   Git commit:       afacb8b7f0
   Built:            Wed Mar 11 01:30:32 2020
   OS/Arch:          linux/amd64
   Experimental:     false
  containerd:
   Version:          v1.2.13
   GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429

GitLab版本为12.10.3,为12.10.2.

在使用dind方法的同时,我应该做些什么来解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2020-10-14 16:12:42

我在安装Gitlab和在Amazon中使用便宜的$5虚拟机上使用docker:dind服务时遇到了困难。

这个月对我来说这件事变得很紧急,因为Gitlab在2000分钟到400分钟的免费计划上有了减少转轮分钟定额

在尝试安装几次之后,我发现问题是Docker没有以权限模式运行。

全安装脚本如下所示,您可以在一个新的VM上运行它,它包括解释链接:

代码语言:javascript
复制
# 1. INSTALL GITLAB RUNNER 
# @see https://docs.gitlab.com/runner/install/linux-repository.html

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
export GITLAB_RUNNER_DISABLE_SKEL=true; sudo -E apt-get install gitlab-runner

# 2. INSTALL DOCKER
# @see https://docs.docker.com/engine/install/ubuntu/

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# 3. REGISTER RUNNER WITH GITLAB.COM
# @see https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled

sudo gitlab-runner register -n \
  --url https://gitlab.com/ \
  --registration-token $REGISTRATION_TOKEN \
  --executor docker \
  --description "My Docker Runner" \
  --docker-image "docker:19.03.12" \
  --docker-privileged \
  --docker-volumes "/certs/client"

在此之后,我能够毫无问题地运行docker:dind服务,甚至不需要指定任何像docker:19.03.12-dind这样的特殊映像

代码语言:javascript
复制
image: docker

services:
  - docker:dind

build:
  stage: build
  script:
    - docker info

    ... your code needing docker here ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63735437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档