概要
Gitlab にはコンテナレジストリの機能があり簡単に有効にすることができます (参考)
今回は Gitlab 自体のコンテナレジストリの機能ではなく自分で構築したコンテナレジストリや PaaS のコンテナレジストリのような外部のコンテナレジストリと Gitlab を連携する方法を紹介します
環境
- Gitlab-ee 13.7.3
- registry 2.0
コンテナレジストリの構築
過去に docker/registry を使って構築したことがあるのでこれを参考に適当なインスタンスにコンテナレジストリを構築しました
gitlab.rb の編集
Gitlab 側から作成したコンテナレジストリを見るようにします
* vim /etc/gitlab/gitlab.rb
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "192.168.100.11"
gitlab_rails['registry_port'] = "5000"
gitlab_rails['registry_api_url'] = "http://192.168.100.11:5000"
registry_host
と registry_port
は Gitlab の UI 上で表示されるホストとポート名になります
実際に Gitlab が registry の API をコールするして情報を取得する設定は registry_api_url
になるのでここに構築したレジストリのエンドポイントを入力しましょう
また当然ですが Gitlab -> registry API へのアクセスはできるようにしておきましょう
動作確認
reconfigure をかけて UI 上でちゃんとイメージの情報が見れるか確認します
* gitlab-ctl reconfigure
再起動できたら適当にイメージを push してみましょう
レジストリにアクセスできる環境からアクセスしましょう
タグ名はちゃんと Gitlab の命名規則に従いましょう
* docker pull alpine
* docker tag 192.168.100.11:5000/root/hoge2
* docker push 192.168.100.11:5000/root/hoge2
Gitlab の UI 上でイメージが確認できれば OK です
最後に
Gitlab で外部のコンテナレジストリと連携する方法を紹介しました
Gitlab のアプリと共存するとストレージなどを逼迫する恐れがあるのでコンテナレジストリは別インスタンスにしたいという場合には使える機能かなと思います
Gitlab のコンテナレジストリ機能だけを有効にしてそれと連携しても良いかなと思います
Gitlab のコンテナレジストリのクリーンアップポリシーなどを使うことができます
0 件のコメント:
コメントを投稿