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文件
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 ......而停靠版本的输出是
$ 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: 7ad184331fa3e55e52b890ea95e65ba581ae3429GitLab版本为12.10.3,为12.10.2.
在使用dind方法的同时,我应该做些什么来解决这个问题呢?
发布于 2020-10-14 16:12:42
我在安装Gitlab和在Amazon中使用便宜的$5虚拟机上使用docker:dind服务时遇到了困难。
这个月对我来说这件事变得很紧急,因为Gitlab在2000分钟到400分钟的免费计划上有了减少转轮分钟定额。
在尝试安装几次之后,我发现问题是Docker没有以权限模式运行。
全安装脚本如下所示,您可以在一个新的VM上运行它,它包括解释链接:
# 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这样的特殊映像
image: docker
services:
- docker:dind
build:
stage: build
script:
- docker info
... your code needing docker here ...https://stackoverflow.com/questions/63735437
复制相似问题