GitLab CE を Dockerを使ってセットアップする。
Contents
GitLab CE とは?
私はソースコードの管理に GitLab.com を利用している。
GitLab.com は GitHub, Bitbucket などの git ホスティングサービスの一つである。
一方、ネットワーク的に外に出られないなど制限下の共用サーバー、
或いは外に出せないコードの開発・管理が必要な場合もある。
そのような場合に使えるのが、GitLab CE(Community Edition)。
自分の環境下に GitLab を立てることができる。
GitLab CE はMITライセンスでオープンソースで開発が進められている。
近いものに GitLab EE(Enterprise Edition) がある。
インストール時に並列に並べてある印象があるが、
こちらはライセンスを購入して使えるようになる機能追加版である。
EE は CEをコアとして動作しており、ライセンスが無い場合 CE と同等になる。
EE版を入れておくと後でライセンスを購入した際にシームレスに移行できるようだ。
ライセンス購入を検討している方は EE版を、そうでない人は CE版を用いればいいと思う。
GitLab CE は各種 Linux Distribution 向けリポジトリを公開しているほか、
Docker コンテナイメージも提供している。
今回はこちらを用いてセットアップを行う。
なお、GitLab CE はシステムメモリ8GB以上を推奨しているので留意されたい。
Docker の準備
GitLab CE のインストール
Docker Compose を用いて動かす。
基本的にはオフィシャルの当該項を参照する。
私がインストールしたマシンは、既にポート 22, 80 が使われているので、
後半に記載のカスタムポート用の docker-compose.yml を参考にした。
オフィシャル記載の docker-compose.yml からの変更点と注意点だけ述べる。
docker が Rootless な一般権限で動いているせいか、
'hostname' を設定すると弾かれたのでコメントアウトした。
ここで宣言しなくても、下記の environment で設定すれば問題なく動作する。
前述したように、今回は SSH, HTTP(S) でカスタムポートを使用した。
ports での宣言に加えて、environment の項で、
GITLAB_OMNIBUS_CONFIG にもその変更を正しく宣言する必要がある。
(external_url, gitlab_rails['gitlab_shell_ssh_port'])
恐らく git repository を clone するための URL が正しく発行できないためと思われる。
ports で 8080:80 としても GitLab 側からは 80 としか見えていないため、
レポジトリのページ記載の clone 先のアドレスを ':80' で発行してしまう。
hostname も同様で、テスト中に未指定のまま localhost などでアクセスすると、
clone アドレスが localhost(:80) になっていた。
手動で書き換えて正しく git からアクセスさせると clone などできたが、
ホスト側の実装を知らないユーザーのためにも、
正しい clone先のアドレスをプロジェクトページに表示できるようにしておく方が良い。
$ docker-compose up [-d] で docker イメージのダウンロード、展開が始まる。
正しく設定できると、最初に webからアクセスした際に、
GitLab の管理パスワードの設定を行う。
root アカウントに上記のパスワードでログインすると、
GitLabサービス自体の設定をブラウザから行うことができる。
余談: gitクライアントとGitKraken
クロスプラットフォームで使える(重要!!) フリーのgitクライアントでは以下が有名である。
- SmartGit
- GitKraken
- SourceTree
このうち GitKraken は、gitホスティングサービスやリポジトリ形態に制限があり、
Public なリポジトリなら Free版で利用することができる。
では、今回のようなオンプレミスの GitLab CE上の Publicリポジトリはどうか?
(オンプレミスに立てた GitLab CE そのものは、その導入動機からしてほぼ非公開だろう)
v6系でも以前は使えたが、今は self-managed なリポジトリは有償版対応になったようだ。
調べてみると v6.4.1 までは使えて, v6.5以降は弾かれるようだ。
更に、少なくとも Windows 10 上では、GitKraken を起動するとアップデーターが走り、
次回起動時には勝手に最新版に更新されてしまう。
以下のよういくつか対策すると、バージョンを固定できた。
- インストール前にネットワークを切断
- v6.4.1 をインストール
- スタートの GitKraken は Update.exe へのリンクになっているので、
app-6.4.1\gitkraken.exe を直接叩く - C:\Windows\Users\xxxx\AppData\Local\gitkraken 以下全てを ro にする
- ネットワークを再接続する
- GitKraken を起動する
多分すべては必要ない。
読み取り専用にしても同フォルダに app-6.6.0 などが作成されていたりする。
(どちらかというと unix畑の私からするとこの挙動は理解できていない)
どれが必須の条件なのか詳しくは調べていないが、効いているのは3つ目か??
ちなみに、旧版は以下からダウンロードできる
- Windows 64bit: https://release.axocdn.com/win64/GitKrakenSetup-x.x.x.exe
- Linux(deb): https://release.axocdn.com/linux/GitKraken-vx.x.x.deb
- Linux(tar.gz): https://release.axocdn.com/linux/GitKraken-vx.x.x.tar.gz
- macOS: https://release.axocdn.com/darwin/GitKraken-vx.x.x.zip
など。