2017-02-21 180 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

非常感谢! –

相关问题