Gitlabコンテナーレジストリ

今年の5月に、 GitLab 8.8のリリースがリリースされました。 このリリースの一部は、組み込みのDocker Container Registryの起動でした。 以下は、これに関する5月の記事の翻訳です。







最近、CIサポートがさらに優れたGitLabバージョン8.8をリリースしました。 GitLabでパイプラインを構築して、アセンブリ、テスト、展開、およびソフトウェアのライフサイクルのその他の段階を視覚化できるようになりました。 今日は、次のステップであるGitLab Container Registryを紹介します。







GitLab Container Registryは、 オープンソースソフトウェアで開発されたDockerイメージ用の安全なプライベートレジストリです 。 GitLab Container RegistryはGitLabに完全に統合されています。







GitLabの主要な機能は、開発プロセスの継続性とさまざまな要素の相互統合です。 これらの原則は、レジストリを操作するときに維持されます。 これで、GitLab Container Registryを使用して、GitLab CIにDockerイメージを使用したり、個々のタグやブランチに特別なイメージを作成したりできます。







GitLab Container Registryは、Gitリポジトリ管理システムに完全に統合された最初のDockerレジストリであることに注意してください。 さらに、GitLab Container RegistryはGitLab 8.8の一部であるため、個別にインストールする必要はありません。 これを使用すると、画像を簡単にダウンロードしてGitLab CIにアップロードできます。 また、無料です。







GitLab Container Registryの使用を有効にする方法については、管理者向けのドキュメントを参照してください。









Dockerの基本



Dockerの主要な作業単位は、アプリケーションの実行と実行に必要なすべてを含むイメージです。 多くの場合、画像は継続的な統合プロセスの一部として自動的に作成されます。つまり、コードが変更されるたびに更新されます。 画像を共有用に作成する場合は、どこかに保存する必要があります。 このために、画像のレジストリが使用されます。







レジストリを使用すると、さらに再利用するために画像を保存し、タグを使用して画像を分類できます。 会社内でのみ使用されるプライベートイメージ、またはたとえば、テストの実行および実行用のイメージを格納するレジストリを作成することをお勧めします。 GitLab Container Registryを使用する場合、追加のサービスを構成および保守したり、パブリックレジストリを使用したりする必要はありません。







GitLabとの緊密な統合



GitLab Container RegistryはGitLabに完全に統合されているため、開発者はGitLab CIまたはその他のDocker互換ツールを使用してDockerイメージを簡単に作成、テスト、実行できます。









ワークフローを合理化する



GitLab Container Registryの操作は簡単で安全です。 GitLab Container Registryを使用して、ソフトウェアの開発と展開のプロセスを簡素化する方法の例を次に示します。









どこから始めますか?



まず、 管理者のドキュメントの説明に従って、システム管理者にGitLab Container Registryの接続を依頼します。







その後、プロジェクトでContainer Registryオプションを有効にできます。













レジストリの使用を開始するには、最初にログインする必要があります。







docker login registry.example.com
      
      





その後、GitLabで画像を簡単に収集してプッシュできます。







 docker build -t registry.example.com/group/project . docker push registry.example.com/group/project
      
      





GitLabは、コンテナーを管理するためのシンプルなインターフェイスも提供します。 プロジェクトのContainer Registryをクリックします。開いたウィンドウで、リポジトリ内のすべてのタグが表示され、それらのタグを簡単に削除できます。













詳細については、 GitLab Container Registryユーザーガイドを参照してください


GitLab CIで使用する



CI GitLabを管理するための組み込みインターフェースを使用して、作成されたイメージをビルド、プッシュ、およびデプロイできます。







警告:これにはGitLab Runner 1.2が必要です。



注: DockerイメージでDockerを使用するには、Runnerの構成で特権フラグを設定する必要があります。 これまでのところ、これ GitLab.comの共有(共有)ランナーでは実行できません 近い将来このフラグを追加する予定ですが、現時点では独自のランナーを使用する価値があります。

GitLab CI構成ファイル( .gitlab-ci.yml



)の例を次に示します。このファイルは、イメージを収集し、テストを実行し、成功した場合にタグをビルドに割り当て、ビルドをイメージレジストリにアップロードします。







 build_image: image: docker:git services: - docker:dind script: - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.example.com - docker build -t registry.example.com/my-group/my-project . - docker run registry.example.com/my-group/my-project /script/to/run/tests - docker push registry.example.com/my-group/my-project:latest only: - master
      
      





タスクを4つのステージに分割し、2つのテストを並行して実行する、より複雑なイメージの例。 ビルドはイメージのレジストリに保存され、後続の段階で使用され、必要に応じてイメージを自動的にダウンロードします。 masterブランチへの変更にはlatest



タグが割り当てられ、その後、アプリケーション固有のスクリプトを使用してこれらの変更がデプロイされます。







 image: docker:git services: - docker:dind stages: - build - test - release - deploy variables: CONTAINER_TEST_IMAGE: registry.example.com/my-group/my-project:$CI_BUILD_REF_NAME CONTAINER_RELEASE_IMAGE: registry.example.com/my-group/my-project:latest before_script: - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.example.com build: stage: build script: - docker build -t $CONTAINER_TEST_IMAGE . - docker push $CONTAINER_TEST_IMAGE test1: stage: test script: - docker run $CONTAINER_TEST_IMAGE /script/to/run/tests test2: stage: test script: - docker run $CONTAINER_TEST_IMAGE /script/to/run/another/test 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: - ./deploy.sh only: - master
      
      





まとめると



GitLab Container Registryは、GitLabソフトウェア開発サイクル用の組み込みツールキットへの最新の追加です。 このアドオンは、 GitLabバージョン8.8以降で利用可能です。 この機能を使用すると、Dockerイメージのテストと展開がはるかに簡単になりました。 GitLab Container Registryは、追加費用なしでGitLab CEおよびGitLab EEにバンドルされており、GitLab用に構成したのと同じインフラストラクチャ上にインストールされます。







Container RegistryはGitLab.comで入手できます。完全に無料であり、すぐに使用を開始できます。







重要 :DockerイメージでDockerを使用するには、Runnerの設定で特権フラグを設定する必要があります。 とりあえず、 これは GitLab.comの一般的なランナーではできません このフラグはすぐに追加する予定です。 すべてはすでに大丈夫です。

PSコメントで使用の経験を共有することは素晴らしいことです。







英語からの翻訳は、翻訳チーム「Brain and Partners」、 http://nadmosq.ruによって行われました。 Sgnl_05翻訳に取り組みました。








All Articles