2016-12-06 9 views
2

Gitlab CIをセットアップしてドッカー画像を作成し、それをGitlabレジストリにプッシュするのにはいくつか問題があります。 Gitlabが提供する共有ランナーを使用しようとしています。私が何を読んでから、これはこのメッセージを表示して、できるだけ早くビルドが任意の「ドッカ」コマンドに達すると、それが失敗した、しかし、関係なく、私がしようとするもの、可能べきではない:gitlab ci共有ランナーでビルドドッカー画像

$ docker build --pull -t $CONTAINER_TEST_IMAGE . 
/bin/bash: line 54: docker: command not found 

私は次のように使用していますCI構成:

image: "ruby:2.3" 

services: 
    - docker:dind 
    - postgres:latest 

variables: 
    POSTGRES_DB: test-db 
    CONTAINER_TEST_IMAGE: registry.gitlab.com/pha3l/gitlab-ci-test-project:$CI_BUILD_REF_NAME 
    CONTAINER_RELEASE_IMAGE: registry.gitlab.com/pha3l/gitlab-ci-test-project:latest 

cache: 
    paths: 
    - vendor/ruby 

stages: 
    - build 
    - test 
    - release 
    - deploy 


before_script: 
    - ruby -v        
    - gem install bundler --no-ri --no-rdoc 
    - bundle install -j $(nproc) --path vendor 

rubocop: 
    script: 
    - rubocop 

rails: 
    variables: 
    DATABASE_URL: "postgresql://postgres:[email protected]:5432/$POSTGRES_DB" 
    script: 
    - bundle exec rake db:migrate 
    - bundle exec rake db:seed 
    - bundle exec rake test 

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

release-image: 
    stage: release 
    script: 
    - docker pull $CONTAINER_TEST_IMAGE 
    - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE 
    - docker push $CONTAINER_RELEASE_IMAGE 
    only: 
    - master 

deploy: 
    stage: deploy 
    script: 
    - echo 'Do the deploy!' 
    only: 
    - master 

答えて

1

しかドッキングウィンドウにドッキングウィンドウを実行しているにあなたをできるように、自分のイメージにドッキングウィンドウのバイナリを追加しないでくださいこれらの行

services: 
    - docker:dind 

のように思えます。 ruby:2.3に基づいて独自のイメージを作成し、dockerユーティリティを明示的に追加する必要があります。 Dockerfileは次のようになります。

FROM ruby:2.3 
MAINTAINER maintaner 

# install docker 
RUN apt-get update && \ 
    apt-get install -y apt-transport-https ca-certificates gnupg2 

RUN apt-key adv \ 
    --keyserver hkp://p80.pool.sks-keyservers.net:80 \ 
    --recv-keys 58118E89F3A912897C070ADBF76221572C52609D 

RUN echo "deb https://apt.dockerproject.org/repo debian-jessie main" | tee /etc/apt/sources.list.d/docker.list 
RUN apt-get update && \ 
    apt-get install -y docker-engine 
+1

ありがとうございます。私は、最初のレベルではなく、作成するコンテナ内でのみルビー環境が必要でないことを認識しました。私は問題を、docker:gitイメージをベースとして使用し、それが作成するコンテナのDockerfileを作成することで解決しました。 – lmerry213

関連する問題