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