web-dev-qa-db-ja.com

準備に失敗しました:unix:///var/run/docker.sockのDockerデーモンに接続できません

Dockerコンテナーgitlab-ci-runnerを起動し、次に、dockerをexecutorとして使用し、node:latestをdockerイメージとして使用して、ランナーを登録しました。しかし、コミットをgitlabにプッシュすると、次のエラーが発生します。

Running with gitlab-runner 11.3.1 (0aa5179e)
  on docker-ci 0f9fe2c4
Using Docker executor with image node:latest ...
ERROR: Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (executor_docker.go:1150:0s)

これが私のgitlabconfig.tomlです:

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-ci"
  url = "http://gitlab.xxxxxx.com/"
  token = "0......fc5"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "node:latest"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

私は以下を使用してコンテナを起動します:

Sudo docker run -d --name gitlab-runner --restart always \
 -v ~/srv/gitlab-runner/config:/etc/gitlab-runner \
 -v ~/var/run/docker.sock:/var/run/docker.sock \
 gitlab/gitlab-runner:latest

以下を使用して登録します。

Sudo docker run --rm -t -i -v ~/srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

Dockerを初めて使用しますが、エラーの理由が見つかりません。助けてくれる人はいますか?

4
westfall

CLIコンテナまたはgitlab-ci-runner containerは、ホストマシンのDockerソケットをコンテナにマウントする必要があるため。これにより、コンテナはホストマシンのDockerデーモンを使用してコンテナを実行し、イメージを構築できるようになります。

gitlab-ci-runnerの実行コマンドを変更する必要があります。

docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest
3
Adiii

私の場合、私のマシンにはDockerがありませんでした。これがインストールのドキュメントです https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce

Sudo apt-get install docker-ce docker-ce-cli containerd.io