2017-02-21 442 views
4

我正在嘗試使用gitlab構建CI,我從Docker的docker鏡像開始,並且我沒有任何關於前端存儲庫的問題,但現在使用回到相同的gitlab-ci配置文件,我有這個守護進程錯誤。無法連接到docker docker鏡像中的守護進程docker

這裏是在構建的輸出:

[0KRunning with gitlab-ci-multi-runner 1.10.4 (b32125f)[0;m 
[0;m[0KUsing Docker executor with image docker:1.13.1 ... 
[0;m[0KPulling docker image docker:1.13.1 ... 
[0;mRunning on runner-4e4528ca-project-1649638-concurrent-0 via runner-4e4528ca-machine-1487688057-7c0f1e46-digital-ocean-4gb... 
[32;1mCloning repository...[0;m 
Cloning into '/builds/***/formation-back'... 
[32;1mChecking out af7cbcae as docker...[0;m 
[32;1mSkipping Git submodules setup[0;m 
[32;1m$ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com[0;m 
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?). Using system default: https://index.docker.io/v1/ 
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 
[31;1mERROR: Build failed: exit code 1 
[0;m 

這裏是我的.gitlab-ci.yml:

image: docker:1.13.1 

stages: 
    - build 
    - test 
    - deploy 

variables: 
    BUILD_IMG: $CI_REGISTRY_IMAGE:$CI_BUILD_REF 
    TEST_IMG: $CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME 
    RELEASE_IMG: $CI_REGISTRY_IMAGE:latest 
    AWS_STAGING_ENV: "***" 
    AWS_PROD_ENV: "***" 
    DOCKERRUN: Dockerrun.aws.json 
    DEPLOY_ARCHIVE: ${AWS_APP}-${CI_BUILD_REF}.zip 

before_script: 
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com 
    - .ci/before_script 

build: 
    stage: build 
    script: 
    - docker build --pull -t $BUILD_IMG . 
    - docker push $BUILD_IMG 

test: 
    stage: test 
    script: 
    - docker pull $BUILD_IMG 
    - docker run --rm $BUILD_IMG npm run test 
    - docker tag $BUILD_IMG $TEST_IMG 
    - docker push $TEST_IMG 

deploy:staging: 
    stage: deploy 
    environment: Staging 
    variables: 
    DOCKER_IMG: ${CI_REGISTRY_IMAGE}:${CI_BUILD_REF} 
    script: 
    - ./.ci/create-deploy-archive $DOCKER_IMG $AWS_BUCKET $DOCKERRUN $DEPLOY_ARCHIVE 
    - ./.ci/aws-deploy $DEPLOY_ARCHIVE $CI_BUILD_REF $AWS_STAGING_ENV 
    artifacts: 
    paths: 
    - $DEPLOY_ARCHIVE 
    except: 
    - production 

deploy:production: 
    stage: deploy 
    environment: Production 
    variables: 
    DOCKER_IMG: ${CI_REGISTRY_IMAGE}:latest 
    script: 
    - .ci/push-new-image $TEST_IMG $RELEASE_IMG 
    - .ci/create-deploy-archive $DOCKER_IMG $AWS_BUCKET $DOCKERRUN $DEPLOY_ARCHIVE 
    - .ci/aws-deploy $DEPLOY_ARCHIVE $CI_BUILD_REF $AWS_PROD_ENV 
    artifacts: 
    paths: 
    - $DEPLOY_ARCHIVE 
    only: 
    - production 
    when: manual 

這裏是我的config.toml文件:

concurrent = 1 
check_interval = 0 

[[runners]] 
    name = "***" 
    url = "https://gitlab.com/ci" 
    token = "750c63cba1c269d789bdb33c42b726" 
    executor = "docker" 
    [runners.docker] 
    tls_verify = false 
    image = "alpine:3.5" 
    privileged = true 
    disable_cache = false 
    volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"] 
    [runners.cache] 

這是碼頭信息:

DEBU[0771] Calling GET /v1.24/info 
Containers: 1 
Running: 1 
Paused: 0 
Stopped: 0 
Images: 1 
Server Version: 1.12.6 
Storage Driver: devicemapper 
Pool Name: docker-202:1-395267-pool 
Pool Blocksize: 65.54 kB 
Base Device Size: 10.74 GB 
Backing Filesystem: xfs 
Data file: /dev/loop0 
Metadata file: /dev/loop1 
Data Space Used: 519 MB 
Data Space Total: 107.4 GB 
Data Space Available: 6.569 GB 
Metadata Space Used: 1.397 MB 
Metadata Space Total: 2.147 GB 
Metadata Space Available: 2.146 GB 
Thin Pool Minimum Free Space: 10.74 GB 
Udev Sync Supported: true 
Deferred Removal Enabled: false 
Deferred Deletion Enabled: false 
Deferred Deleted Device Count: 0 
Data loop file: /var/lib/docker/devicemapper/devicemapper/data 
WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device. 
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata 
Library Version: 1.02.93-RHEL7 (2015-01-28) 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
Plugins: 
Volume: local 
Network: bridge overlay null host 
Swarm: inactive 
Runtimes: runc 
Default Runtime: runc 
Security Options: 
Kernel Version: 4.4.44-39.55.amzn1.x86_64 
Operating System: Amazon Linux AMI 2016.09 
OSType: linux 
Architecture: x86_64 
CPUs: 1 
Total Memory: 995.2 MiB 
Name: ip-172-31-30-143 
ID: D6DU:OBWL:R3HK:DSZK:EOYC:5EHS:NU4I:4M3T:H5PL:JWLH:CIPD:I7VW 
Docker Root Dir: /var/lib/docker 
Debug Mode (client): false 
Debug Mode (server): true 
File Descriptors: 20 
Goroutines: 27 
System Time: 2017-02-22T11:16:19.042666914Z 
EventsListeners: 0 
Registry: https://index.docker.io/v1/ 
Insecure Registries: 
127.0.0.0/8 
+0

你可以從託管gitlab的機器添加'docker info'的結果嗎? – jrbeverly

+0

你可以添加你的'gitlab-runner'的config/config.toml文件的內容嗎? –

+0

我有同樣的問題。我在config.toml中設置了'privileged = true'。 我也在手動啓動Docker鏡像時遇到它。 –

回答

4

您需要

services: 
    - docker:dind 

添加到您的.gitlab-ci.yml。這告訴跑步者啓動第二個容器(docker:dind),這是一個工作的docker守護進程的映像。它需要在第二張圖片才能運行。

有關詳細信息,請參閱泊塢窗示例項目:https://gitlab.com/gitlab-examples/docker/blob/master/.gitlab-ci.yml

因爲沒有運行碼頭工人守護它不無服務工作,你不能docker:dind容器內運行您的構建,因爲運行命令將取代碼頭守護程序。

+0

Hello Josef Hoppe謝謝:)我沒有kwo這個服務,我解決了我的問題,爲我的兩個項目運行兩個跑步者。我不知道它是如何工作的:/ –

+0

非常感謝! –

相關問題