2017-09-05 9 views
0

ビルドと、これは私の現在のCIファイルですGitLab CIと私は私の地元のネクサスレポにドッキングウィンドウの画像を構築し、プッシュしたいGitLab CI

をドッキングウィンドウの画像を押す:

image: docker:latest 

services: 
    - docker:dind 

before_script: 
    - docker info 
    - docker login -u some_user -p nexus-rfit some_host 

stages: 
    - build 

build-deploy-ubuntu-image: 
    stage: build 
    script: 
    - docker build -t some_host/dev-image:ubuntu ./ubuntu/ 
    - docker push some_host/dev-image:ubuntu 
    only: 
    - master 
    when: manual 

も仕事をしていますアルペンドッキングウィンドウのために、私はそれのいずれかを実行したいときには、次のエラーで失敗します:

Checking out 13102ac4 as master... Skipping Git submodules setup $ docker info Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ERROR: Job failed: exit code 1

だから技術的に画像でドッキングウィンドウデーモンが実行されていないが、私は、なぜ分かりませんか?

答えて

2

GitLabの人々は、ドッカーベースのジョブ内でdocker-buildを使用することについて、ドキュメント上で参照しています。https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-docker-in-docker-executorすべての作業(ジョブの右イメージと追加のdocker:dindサービス)が必要な場合は、ランナー設定の問題が考えられます。

あなたはドキュメントの第2ステップを見れば:

  1. Register GitLab Runner from the command line to use docker and privileged mode:

    [...]

    Notice that it's using the privileged mode to start the build and service containers. If you want to use docker-in-docker mode, you always have to use privileged = true in your Docker containers.

おそらくあなたはが特権モードで構成されていなかったので、適切に内部ドッカデーモンを実行することができないというランナーを使用しています。登録ランナーの/etc/gitlab-runner/config.tomlを直接編集して、そのオプションを追加することができます。

(また、選択したストレージドライバに関連するパフォーマンスの詳細については、ドキュメントのセクションを参照してください/ランナーは、dind使用時にサポートします)

関連する問題