GitLabのversion8.8からDockerコンテナレジストリの機能が使えるようになりました。
今回はGitLabContainerRegistryを使得るようになるまでの手順を書こうと思う。
対象者
パッケージ(yumやapt)でGitLabをインストールした人
※今回は苦行インストールした人は対象にしません、ごめんなさい><
前提
- GitLabのversion8.8+がインストール済みであること
- 今回は最低限の設定しか書きません。
設定手順
(1) 証明書の作成
console
mkdir /certs
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout /certs/registry.key \
-x509 -days 365 -out /certs/registry.crt
(2) GitLabのContainerRegistryの設定
- 下記の三箇所を変更する
/etc/gitlab/gitlab.rb
###############################
# Container registry settings #
###############################
registry_external_url 'https://registry.example.com'
(省略)
##################
# Registry NGINX #
##################
registry_nginx['ssl_certificate'] = "/certs/registry.crt"
registry_nginx['ssl_certificate_key'] = "/certs/registry.key"
(3) 各種設定の再読み込み
gitlab-ctl reconfigure
※ reconfigureはGitLabが起動している状態からを期待して動作してるっぽい
(4) GitLabにアクセスし、リポジトリの真ん中編のRegistryが表示されている場合は、ポチッと!
- ない場合は、下記の一番下の「Edit Project」を選択する。
- Features -> Container Registryにチェックをいれ、[Save changes]を設定し、Registryを押す。
使い方
(1) ログインしてみましょう
docker login registry.example.com
- IDとパスワードが聞かれるので、GitLabにログインするときのものを使用する。
- 例:root / 5iveL!fe
- ログイン成功するとsuccessと表示される
これで使用する準備ができました!
(2) ログイン後はイメージのビルドや、プッシュが可能になる。
# カレントディレクトリのDockerfileがビルドされる。
docker build -t registry.example.com/test/test_prj .
# 作成したイメージをレジストリにプッシュする
docker push registry.example.com/test/test_prj
Tips
Centos系の場合
update-ca-trust enable
cp /certs/registry.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
Macの場合
(1) Macにファイルを持ってきて、openでKeyChainで読み込む
open ~/registry.crt
(2) Docker にinsecureレジストリ登録