2017-08-05 10 views
5

Gitlabは、自分のレジストリに画像を作成して公開するための.gitlab-ci.ymlテンプレートを提供しています(.gitlab-ci.ymldockerを選択してください)。このファイルは次のようになります。gitlab-ciからdockerハブに公開する方法

# This file is a template, and might need editing before it works on your project. 
# Official docker image. 
image: docker:latest 

services: 
    - docker:dind 

before_script: 
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY 

build-master: 
    stage: build 
    script: 
    - docker build --pull -t "$CI_REGISTRY_IMAGE" . 
    - docker push "$CI_REGISTRY_IMAGE" 
    only: 
    - master 

build: 
    stage: build 
    script: 
    - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" . 
    - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" 
    except: 
    - master 

これはデフォルトでgitlabのレジストリに公開されます。代わりにdocker hubに公開するにはどうすればよいですか?

答えて

7

これを変更する必要はありません。プロジェクトのパイプライン設定で環境変数を追加/置換する必要があります。

まず、レジストリのURLを知る必要があります。

Error response from daemon: login attempt to https://hub.docker.com/v2/ failed with status: 404 Not Found

デフォルトドッカハブレジストリのURLが次のように見つけることができます:動作しませんhub.docker.comを使用すると、次のエラーを取得します index.docker.io

docker info | grep Registry 
Registry: https://index.docker.io/v1/ 

は何をであるI探していた私はgableroux/unity3d imageを公開したかった、ここで私がパイプラインの秘密で使用されるものです:

CI_REGISTRY_USER=gableroux 
CI_REGISTRY_PASSWORD=******** 
CI_REGISTRY=index.docker.io 
CI_REGISTRY_IMAGE=index.docker.io/gableroux/unity3d 

CI_REGISTRY_IMAGEは、設定することが重要です。 registry.gitlab.com/<username>/<project>
regsitry URLへ
これはデフォルトでドッキングウィンドウのハブがデフォルトのレジストリであるので、あなたはまた、代わりに<username>/<project>を使用することができますが、それは冗長だとき、私は好むindex.docker.io/<username>/<project>
を使用するように更新する必要があります。したがって、この回答は他のレジストリをカバーし、それに応じて環境変数を更新するだけです。

関連する問題