首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在gitlab-ci跑步机上运行最新的对接器

不能在gitlab-ci跑步机上运行最新的对接器
EN

Stack Overflow用户
提问于 2018-01-11 18:41:21
回答 1查看 642关注 0票数 2

我正在测试gitlab,并试图从Dockerfile在注册表上生成一个映像。

我只需要测试相同的代码:

代码语言:javascript
复制
#gitlab-ci 
image: docker:latest

tages:
  - build
  - deploy

build_application:
  stage: build
  script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . -f Dockerfile
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-test

产出:

代码语言:javascript
复制
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

docker正在运行,图像正在被拖动,但我无法执行docker命令。

在本地环境中,如果运行:

代码语言:javascript
复制
docker run -it docker:latest

我呆在集装箱里运行码头信息我也有同样的问题。我不得不通过这样运行容器来修复它:

代码语言:javascript
复制
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker:latest

但我不知道如何在gitlab-ci上解决这个问题。我把我的跑步者配置成:

代码语言:javascript
复制
docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

也许有人能让我走向正确的方向。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-11 19:24:47

通过默认设置,不可能运行停靠码头(DIND) (作为一种安全措施)。

Gitlab文档中的这一节是您的解决方案。你必须使用码头工人。

将运行程序配置为使用DIND之后,您的.gitlab-ci.yml将如下所示:

代码语言:javascript
复制
#gitlab-ci 
image: docker:latest

variables:
  DOCKER_DRIVER: overlay2

services:
- docker:dind

before_script:
- docker info

stages:
  - build
  - deploy

build_application:
  stage: build
  script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . -f Dockerfile
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-test
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48213882

复制
相关文章

相似问题

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