alpine не может получить доступ к демону docker при использовании gitlab-ci


У меня есть пользовательский GitLab ci, который я хочу скомпилировать приложение Golang и построить образ docker. Я решил использовать alpine docker image для 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 runner запускает контейнер 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 3

1 ответ:

По умолчанию вы не можете использовать Docker-in-docker. Вы должны настроить свой бегун следующим образом. Затем, как указано в пояснении, также используйте docker:latest в качестве изображения вместо alpine.