Amazon

2020年10月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

最近のトラックバック

無料ブログはココログ

« Blazor WebAssemblyでもう少し遊んでみる(.NET Core v3.1 + VisualStudio2019) | トップページ | ELECOM Bluetoothマウス M-BT12BRを購入しました »

2020年9月 1日 (火)

Docker上のgitlabでDockerレジストリの機能を有効化する

今回はDockerを使って動かしているgitlabのDockerレジストリ機能を有効化します。
gitlabは既にDockerを利用して立ち上げ済みだと言う前提で設定します。Dockerを使用してgitlabを立ち上げる手順は以下を参考にしてください。

  開発用環境を整備する (Docker Composeを使用してSambaADとGitlabをインストールする)
  開発用環境を整備する (Gitlab インストール + SambaAD認証 + 日本語化編)





以前、Dockerレジストリのサーバを立てました。

  開発用環境を整備する (Docker レジストリサーバを立てる)

しかし、我が家では色々なファイルの管理の為にgitlabを自宅のサーバ(パソコン)で立てています。と、なると…

  ・gitlabを使うのであればそもそも一つで済ませたい
  ・コンテナイメージはソースコードとセットで管理したい


と、思います。と、いう訳で今回はgitlabをDockerレジストリとして使える様に設定してみます。


・ディレクトリの追加

新たに必要となるディレクトリが二つあります。一つは証明書用のディレクトリ、もう一つはレジストリファイルを保存する領域です。

今回は自宅サーバなので証明書は無しで構成しますが、一応証明書用のディレクトリも作成しておきます。
今回の構成では、以下のディレクトリを追加作成します。




・gitlab.rbの設定

gitlabをDockerレジストリとして使用するには設定が必要です。以下の行を追加します。今回の設定では、IPアドレスは192.168.128.241、ポートは4567番を 使う設定とします。また、レジストリの保存先は/registryとしました。



また、証明書を使用する場合は下記の設定も必要です。(ここでは証明書をserver.crt/server.keyで作成した例となります)




・証明書の作成(今回は未実施)

経路でSSLを使用する為に証明書を作成します。(但し、今回は自宅サーバがIPアドレス直指定で運用されている為、
実際には証明書は作成しませんでした。)




途中の質問には何を入れても良いので適当に回答します。



・TLS通信の停止(gitlabサーバをIPアドレスで運用している場合)

本来であれば、上記の様に証明書を使用するべきなのですが…。我が家ではサーバ名をつけずにIPアドレスで運用しています。
その為、TLS通信無しでdockerでloginする為に/etc/docker/daemon.jsonに以下の設定を追加します。



上記設定をすると、Dockerからログインする際に暗号化無しで通信できる様になります。


・docker-compose.ymlの修正

作業前のdocker-compose.ymlです。



上記の設定を下記の様に修正します。4567ポートのマッピングの追加と/certs ・ /registry ディレクトリの
マウントを追記しています。



以上です。これでgitlabのレジストリ機能が利用できるはずです。設定を反映させる為にdocker-compose コマンドで
docker-compose up と docker-compose downを実行して、コンテナの削除と再起動を実施して下さい。


・gitlabのDockerレジストリを使用する

レジストリの使用方法は以下のイメージになります。ブラウザでgitlabにログインしてプロジェクトを開きます。中央付近に コンテナレジストリのアイコンがあります。

Gitlabregistry20200815_01

クリックすると使い方の説明があります。

Gitlabregistry20200815_02

続いてLinuxのシェルから以下のコマンドを使ってログインします。ここでは、以下のコマンドを実行します。

  docker login 192.168.128.241:4567



ログインできたので、続いてタグを作成してpushしてみます。以下のコマンドを実行します。

  docker tag ubuntu:xenial 192.168.128.241:4567/hoge/sample/ubuntu:20200815
  docker push 192.168.128.241:4567/hoge/sample/ubuntu:20200815






できました。これでgitlabのレジストリにイメージがpushされました。最後に再度ブラウザからgitlabにログインして、
コンテナレジストリの中身を確認します。

Gitlabregistry20200815_03

レジストリの状態もgitlabの画面から確認する事ができますし、削除もgitlabの画面から実施できます。レジストリの管理が簡単にできますね。




如何でしょうか。これで単なる保管庫としてのレジストリではなく、ソースコードや関連するDockerファイルと一緒に管理できる レジストリとなりました。加えて、gitlabのUIからの操作・管理もできるようになり格段に利便性が増したと思います。 そのうえ、優れたCIツールでもあるgitlabと連携させる事も容易になり非常に使い易い環境になると思います。 世の中には様々なツールがあり、組み合わせて使って行くのは大切な事ですが、その一方で連携を考え・設定するのは面倒でもあります。 gitlabをレジストリとして使用する事で、連携設定の手間を省きながら利便性を向上できますので、是非使ってみて下さい。





しかし、gitlabは便利ですね。以前までは自宅で管理したい色々なファイルはSubversionで管理していましたが、豊富な機能を持つ gitlabは非常に便利です。また、gitlabはWeb GUIを持つのでPCにクライアントツールをインストールしなくてもある程度使えると言う意味でも便利です。 クラウドには置きたくないようなファイルを、家庭内で手堅く管理する為のツールとして導入してみては如何でしょうか。
gitlabに保存する事でバックアップになりますし、そのデータを複数のPCで扱うことでさらにいざという時にデータが助かる可能性が上がりますので、 家庭内でgitlabの様なバージョン管理ツールを導入するのは良いことだと思います。










« Blazor WebAssemblyでもう少し遊んでみる(.NET Core v3.1 + VisualStudio2019) | トップページ | ELECOM Bluetoothマウス M-BT12BRを購入しました »

Linux」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Blazor WebAssemblyでもう少し遊んでみる(.NET Core v3.1 + VisualStudio2019) | トップページ | ELECOM Bluetoothマウス M-BT12BRを購入しました »