##概要
Docker Hubでコンテナイメージを登録できますが、githubでもコンテナレジストリを使うことでコンテナイメージを登録することが出来るようなので、gitlabのコンテナレジストリの有効化とコンテナイメージの登録をしてみます。
##環境
■gitlabサーバ
OS:CentOS7
IPアドレス:192.168.11.211
■gitlab
ユーザ名:root
プロジェクト名:ansible
##設定方法
gitlabのコンテナレジストリを有効化するためには、/etc/gitlab/gitlab.rb内のregistry_external_urlを変更します。
コンテナレジストリ用のポートはgitlabのexternal_urlで使用しているポート(デフォルト80 or 443)以外にします。
#コメントアウトを外し、gitlabのドメインを登録する
#registry_external_url '<gitlabのドメイン名orアドレス>:<ポート番号>'
registry_external_url 'http://192.168.11.211:5050'
以下のコマンドでgitlabを再構成します。
gitlab-ctl reconfigure
gitlabにログインし、目的のプロジェクトのトップ画面を開きます。
左メニューより[パッケージとレジストリ]-[コンテナレジストリ]をクリックします。
コンテナイメージを登録するために、まずレジストリを登録しますが、
今回httpを利用しているため、登録時エラーが発生します。
dockerのサービスファイルにinsecure-registryをオプションに加えます。
#ExecStartに「--insecure-registry <gitlabのドメインまたはアドレス>:<ポート番号>」を付け加える
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.11.211:5050
サービスファイルを修正後、ファイルを読込み、サービスを再起動します。
systemctl daemon-reload
systemctl restart docker.service
コンテナイメージを登録するには、dockerコマンドでレジストリ及びイメージの登録をします。
※登録前にdockerfileを作成します。
docker login http://192.168.11.211:5050
docker build -t 192.168.11.211:5050/root/ansible /root/work/
docker push 192.168.11.211:5050/root/ansible
コンテナイメージが登録されていると、画面のように表示されます。