使用gitlab-ci时,alpine无法访问docker守护进程

时间:2018-01-22 23:01:42

标签: docker gitlab gitlab-ci gitlab-ci-runner alpine

我有一个自定义的gitlab ci,我想编译一个Golang应用程序并构建一个docker镜像。我决定使用alpine docker图像作为gitlab runner。我无法接缝以启动码头工具。我试图手动启动docker并收到错误(* WARNING: docker is already starting),如果我不手动启动docker服务,我会得到(Fails (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?)任何其他人都会遇到此问题?

这不是一个重复的问题。 Gitlab跑步者在root中运行docker alpine容器(通过运行whoami验证)。为了尝试,我尝试了usermod -aG docker $(whoami)并获得了相同的输出。

.gitlab-ci.yml

image: alpine

variables:
  GO_PROJECT: linkscout

before_script:
  - apk add --update go git libc-dev docker openrc
  - mkdir -p ~/go/src/${GO_PROJECT}
  - cp -r ${CI_PROJECT_DIR}/* ~/go/src/${GO_PROJECT}/
  - cd  ~/go/src/${GO_PROJECT}
  - service docker start #  * WARNING: docker is already starting

stages:
    - compile
    - build

compile:
    stage: compile
    script:
      - go get
      - go build -a

build:
    stage: build
    script:
     - docker version # If I don't run (service docker start) I get this message: Fails (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?)

1 个答案:

答案 0 :(得分:1)

默认情况下,您无法使用Docker-in-docker。你应该configure your runner like this。然后,如说明中所述,还使用docker:latest作为图像而不是alpine