gitlab-ci: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

2.7k views Asked by At

I'm installing a personal runner for my projects.

sudo docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \   --non-interactive \   --executor "docker" \   --docker-image docker:stable \   --url "https://gitlab.com" \   --registration-token "my-token" \
--description "docker-runner privileged" \   --tag-list "docker,aws, gara" \   --run-untagged="true" \   --locked="false" \  
--access-level="not_protected" \   --docker-privileged

with this runner i can successfully the step test, build and analysis of my maven projet.

For step docker build, I always have:

Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running? ERROR: Job failed: exit code 1

Full log:

Running with gitlab-runner 13.1.1 (6fbc7474) on docker-runner privileged GYDNagVx Preparing the "docker" executor 00:21 Using Docker executor with image docker:latest ... Starting service docker:dind ... Pulling docker image docker:dind ... Using docker image sha256:b3893e48cf281b58a763fb90904fd5d63595f9e5ae5736ee2d892a2dea6a371a for docker:dind ... Waiting for services to be up and running... Pulling docker image docker:latest ... Using docker image sha256:809cc4dba987efb4641d5b6fef38f47abcde1bc5c5e9850616f0ed3552737e8c for docker:latest ... Preparing environment 00:04 Running on runner-gydnagvx-project-15477556-concurrent-0 via e59663817b22... Getting source from Git repository 00:07 Fetching changes with git depth set to 50... Reinitialized existing Git repository in /builds/gara-project/back-end-micro-services/msearch/.git/ Checking out 80fcdd6e as develop... Removing target/ Skipping Git submodules setup Downloading artifacts 00:18 Downloading artifacts for maven-build (788252737)... Downloading artifacts from coordinator... ok id=788252737 responseStatus=200 OK token=jjUorX2D Executing "step_script" stage of the job script 00:27 $ docker login -u "${registry_user}" -p "${registry_pass}" "${registry_url}" WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded $ docker build -t "${registry_url}/${image_name}:${image_tag}" . Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running? ERROR: Job failed: exit code 1

It seems to be a common error but none of solutions found over internet works for me. My gitla-ci.yml file:

include:
  - local: '/templates/.gitlab-ci-common-template.yml'

variables:
  SPRING_PROFILES_ACTIVE: test
  MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  DOCKER_TLS_CERTDIR: ""

default:
  image: maven:3.6.3-jdk-8-slim
  cache:
    key: "$CI_COMMIT_REF_NAME"
    paths:
      - .m2/repository/
      - target/

stages:
    - test
    - build
    - analysis
    - docker
    - scan
    - deploy
    - delivery

maven-test:
  stage: test
  extends:
    - .ci_only
    - .skip_build
  script:
  - mvn test
  artifacts:
    reports:
      junit:
        - target/surefire-reports/TEST-*.xml

maven-build:
  stage: build
  extends:
    - .ci_only
    - .skip_build
  script:
    - "./mvnw -Pint clean install -DskipTests=true"
  artifacts:
    paths:
      - target/*
    expire_in: 1 week

docker-build:
  image: docker:latest
  services:
    - docker:19.03.0-dind
  cache: {}
  before_script:
    - docker login -u "${registry_user}" -p "${registry_pass}" "${registry_url}"
  stage: docker
  dependencies:
    - maven-build
  extends:
    - .skip_build
    - .ci_only
  script:
    - docker build -t "${registry_url}/${image_name}:${image_tag}" .
    - docker run -d --name ${image_tag} "${registry_url}/${image_name}:${image_tag}"
    - sleep 60 && docker ps && docker logs ${image_tag}
    - if [ $(docker inspect -f '{{.State.Running}}' ${image_tag}) = "true" ]; then echo "Application well started"; else exit 1; fi
    - docker rm -f ${image_tag}
    - docker push "${registry_url}/${image_name}:${image_tag}"

docker_release_image:
  image: docker:latest
  stage: delivery
  before_script:
    - docker login -u "${registry_user}" -p "${registry_pass}" "${registry_url}"
#    - docker login -u "${registry_prod_user}" -p "${registry_prod_pass}" "${registry_prod_url}"
  services:
    - docker:19.03.0-dind
  script:
    - docker pull "${registry_url}/${image_name}:${image_tag}"
    - docker tag "${registry_url}/${image_name}:${image_tag}" "${registry_url}/${image_name}:${CI_COMMIT_TAG/*v/}"
    - docker tag "${registry_url}/${image_name}:${image_tag}" "${registry_url}/${image_name}:latest"
#    - docker tag "${registry_url}/${image_name}:${image_tag}" "${registry_prod_url}/${image_name}:${CI_COMMIT_TAG/*v/}"
    - docker push "${registry_url}/${image_name}:${CI_COMMIT_TAG/*v/}"
    - docker push "${registry_url}/${image_name}:latest"
#    - docker push "${registry_prod_url}/${image_name}:${CI_COMMIT_TAG/*v/}"
    - docker rmi "${registry_url}/${image_name}:${image_tag}"
  when: manual
  extends:
    - .only_tag_on_master

Please how could I correct it ? Thanks

0

There are 0 answers