我想使用GitLab CI构建并将docker镜像推送到我当地的nexus repo
这是我目前的CI文件:
image: docker:latest
services:
- docker:dind
before_script:
- docker info
- docker login -u some_user -p nexus-rfit some_host
stages:
- build
build-deploy-ubuntu-image:
stage: build
script:
- docker build -t some_host/dev-image:ubuntu ./ubuntu/
- docker push some_host/dev-image:ubuntu
only:
- master
when: manual
还有一个alpin docker的工作,但是当我想运行其中任何一个时,它失败并出现以下错误:
检出13102ac4为主...跳过Git子模块设置$ docker info无法连接到unix:///var/run/docker.sock上的Docker守护进程 . docker守护程序是否正在运行?错误:作业失败:退出代码1
所以从技术上讲,图像中的docker守护进程没有运行,但我不明白为什么?
1 回答
GitLab的人员在他们的文档中引用了有关在基于docker的作业中使用docker-build的文档:https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-docker-in-docker-executor . 由于您似乎已准备好所有内容(即作业的正确图像和附加的
docker:dind
服务),因此很可能是runner-config问题 .如果你看一下文档中的第二步:
可能你正在使用跑步者 was not configured in privileged mode 因此无法在里面正确运行docker守护进程 . 您可以直接编辑注册跑步者的
/etc/gitlab-runner/config.toml
以添加该选项 .(另外,请阅读文档部分,了解有关与您选择的存储驱动程序相关的性能的更多信息/您的跑步者在使用时支持)