2016-04-07 26 views
1

だから私は成功したドッキングウィンドウのコンテナとしてgitlab/gitlab-ランナーを起動し、登録している...gitlab-ciランナーにdockerイメージをプッシュできるように信用を渡す...?

を私はgitlab-CIプロセスを設定していますが、私はトラブル私は私の秘密を管理する方法を理解することを抱えていますgitlab/dindのドッカーランナー。

私はこのケースで構築したい事は、単純に、後に他のCI統合テストビルドで使用するキャッシュを投入、Dockerfileからドッキングウィンドウのイメージを構築しています。これは私のプライベートドッカーのレジストリにそれをプッシュすることによって。この場合、私の.gitlab-ci.yml定義はちょうどです:

build_image: 
    script: 
    - docker build -t ensime/ensime-atom-ci . 
    - docker tag ensime/ensime-atom-ci docker.woodenstake.se/ensime/ensime-atom-ci 
    - docker push docker.woodenstake.se/ensime/ensime-atom-ci 

は十分に単純なようだが、それが失敗したので、もちろん、私はここにはcredsをを持っていない:

私は、生成ところ、私はちょうどドローンから来ましたこれは.secファイルです。

ここで私はログインする必要がありますか?だから私はここに

https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/advanced-configuration.md#using-a-private-docker-registry

を読んで、私はdockerized gitlab/gitlabランナー画像の中からgitlabランナーを実行しているので、問題がある、でもそこにドッキングウィンドウのCLIがあるように思えないのですか?

[email protected]:/var/lib$ sudo docker exec -it gitlab-runner docker login 
exec: "docker": executable file not found in $PATH 

いずれのヒントも高く評価されています。明確化のため

更新:

のでgitlab-CIビルドログの末尾は次のとおりです。

012ca7ed9b62: Retrying in 1 seconds 
173cd98367a6: Retrying in 1 seconds 
92b0661193a5: Retrying in 1 seconds 
c12ecfd4861d: Waiting 
5f70bf18a086: Retrying in 5 seconds 
no basic auth credentials 

ERROR: Build failed: exit code 1 

ホストマシンがルートとしてレジストリに記録されます。ドッカーコンテナーからログインしようとしています。私はちょうどドッカーcliを持っていません。

私はランナーの登録に--docker-privilegedフラグを追加しました。

私は、資格情報がホストを通過する必要があると思います - > gitlab-ランナー - >ランナーインスタンス(DIND)

+0

ログオン方法を理解しましたか?私は現在、同じ問題に直面しています... –

答えて

5

あなたはgitlab自身のコンテナのレジストリを使用している場合は、あなたのスクリプトセクションに以下を追加する必要があります。 gitlab-ci.ymlファイル:

docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN docker.woodenstake.se

外部レジストリを使用している場合、私はあなたがプロジェクトの設定]> [変数のビルドに変数としての資格情報を追加提案し、その後、あなたが行docker login -u $USER_VAR -p $PASS_VAR docker.woodenstake.seを追加することができますgitlab-ci.ymlファイル。

それは次のようになります。ランナーは、資格情報を持っている必要がありますプライベートレジストリからの画像を使用するには

build_image: 
    script: 
    - docker login -u $USER_VAR -p $PASS_VAR docker.woodenstake.se 
    - docker build -t ensime/ensime-atom-ci . 
    - docker tag ensime/ensime-atom-ci docker.woodenstake.se/ensime/ensime-atom-ci 
    - docker push docker.woodenstake.se/ensime/ensime-atom-ci 
1

。 gitlab/gitlab-runnerの画像にはdockerコマンドがありません。その後

docker login your.registry:5000

を、あなたのgitlabランナーインスタンスに/root/.docker/config.jsonよう~/.docker/config.jsonをマウントします。 最も簡単な解決策は、ランナーが実行されているホストからレジストリにログインすることです。

ビルド中に画像をプッシュするには、Eduardo Cardosoの答えを参照してください。

関連する問題