热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GitlabCI-使用共享运行程序构建Docker映像(无法连接到DockerDaemon)

如何解决《GitlabCI-使用共享运行程序构建Docker映像(无法连接到DockerDaemon)》经验,为你挑选了1个好方法。

我目前正在使用Gitlab Shared Runners来构建和部署我的项目(至少我也在尝试!)。

我在下面有gitlab-ci.yml:

image: java:8-jdk

stages:
  - build
  - package

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle
  - docker info

cache:
  paths:
    - .gradle/wrapper
    - .gradle/caches
build:
  stage: build
  script:
    - ./gradlew build
  artifacts:
    paths:
      - build/libs/*.jar
    expire_in: 1 week
  only:
    - master

docker-build:
  image: docker:stable
  services:
   - docker:dind
  stage: package
  script:
    docker build -t registry.gitlab.com/my-project .
    docker push registry.gitlab.com/my-project

after_script:
  - echo "End CI"

首先,构建阶段做得很好,但是第二个阶段在我尝试构建并推送Docker映像时出现了问题。

我得到这个日志:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

看来Gitlab正在使用无法构建docker映像的共享运行器,但我不知道如何更改它。我无法更改运行程序的配置,因为我正在使用共享运行程序。我还尝试在第二阶段添加一些标签,希望有一个更合适的跑步者来照顾我的工作,但是我仍然遇到这个错误。

谢谢您的帮助。



1> BMitch..:

我相信您需要进行设置DOCKER_HOST以连接到在另一个容器中运行的DinD:

docker-build:
  image: docker:stable
  services:
   - docker:dind
  stage: package
  script:
    - export DOCKER_HOST=tcp://docker:2375/
    - docker build -t registry.gitlab.com/my-project .
    - docker push registry.gitlab.com/my-project


推荐阅读
author-avatar
把默认珀尔_430_394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有