Ubuntu on Docker に 日本語化した GitLab を構築する
素の Ubuntu イメージに GitLab を入れていきます。ただ入れるのではなく、日本語化をします*1。
まずはdocker run
Ubuntu の公式イメージでdocker run
しましょう。--name
と--hostname
、そして-p
は任意の値に変更して構いません。
# docker run -it --privileged --name gitlab --hostname gitlab -p 50000:80 ubuntu /bin/bash
基本的なapt-get
bash
に入れたならばまずは基本的なところをapt-get
しましょう。
# apt-get update # apt-get install -y build-essential unzip patch
公式の手順にしたがってapt-get
次に公式サイトの手順にしたがってapt-get
していきます。ただしここではpostfix
は入れていません。Gmail の SMTP を使うからです。
# apt-get install -y curl openssh-server ca-certificates
deb ファイルを直接落としてdpkg -i
日本語化する都合上、バージョンを選択的に落としてくる必要があります。これを書いている時点では 8.13.3 を日本語化したいので、対応する deb を落としてきてインストールします。
# wget -O "/opt/gitlab-ce_8.13.3.deb" "https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_8.13.3-ce.0_amd64.deb/download" # dpkg -i /opt/gitlab-ce_8.13.3.deb
下のような画面が出れば無事インストール完了です。
gitlab-ctl reconfigure
する
上の画面の通り、次はgitlab-ctl reconfigure
するのですが、これ、そのままやるとruby_block[supervise_redis_sleep] action run
で止まってしまいます*2。困り果てていたところ、公式のドキュメントにちゃんと書いてありました。
素直に書いてある呪文の通りに実行していきましょう。
# cp /opt/gitlab/embedded/cookbooks/runit/files/default/gitlab-runsvdir.conf /etc/init/ # initctl start gitlab-runsvdir # /opt/gitlab/embedded/bin/runsvdir-start &
そして再構築しましょう。今度は通るはずです。
# gitlab-ctl reconfigure
日本語化
ここまでで英語版のインストールはできましたので、いよいよ日本語化していきましょう。まずは GitLab を止めます。
# gitlab-ctl stop
原始的な方法ですが、分かりやすくするために、zip ファイルを落としてきてそれを解凍して用いましょう。当然ながら下記で落ちてくる日本語化ファイルは最新版のものになります。
# cd /opt # wget https://github.com/ksoichiro/gitlab-i18n-patch/archive/master.zip # unzip master.zip
解凍が終わったらパッチを適用するディレクトリに移動します。
# cd /opt/gitlab/embedded/service/gitlab-rails
パッチを当てましょう。パッチファイルのディレクトリのバージョン番号を英語版のそれと合致させましょう(この場合は 8.13.3)。
patch -p1 < /opt/gitlab-i18n-patch-master/patches/v8.13.3/app_ja.patch
パッチを当て終わったらドキュメントにしたがってprecompile
しましょう。かなり時間がかかりますので、終了まで気長に待ちましょう。
# cd /opt/gitlab/embedded/service/gitlab-rails # rm -rf public/assets # export PATH=/opt/gitlab/embedded/bin:$PATH # bundle exec rake assets:precompile RAILS_ENV=production
終了したら日本語化完了です!
Gmail の SMTP 対策
Gmail の SMTP を使う場合はchown
する必要があります。こちらのページにまさにその旨が書いてありました。これに気づくのに数時間かかりました……。
# chown -R git:git /opt/gitlab/embedded/service/gitlab-rails/tmp/cache/assets/
再びgitlab-ctl reconfigure
する
以下の手順で再びgitlab-ctl reconfigure
しましょう。
# gitlab-ctl restart # gitlab-ctl reconfigure # gitlab-ctl restart
最後のrestart
は不要かもしれませんが、個人的な気分です。あとは Webブラウザ で所定のアドレス(ポート)にアクセスし、以下のような画面が出ればインストールは完了です!
設定やらデータの永続化やら
各種設定(SMTP も含む)は/etc/gitlab/gitlab.rb
を編集する必要があります。また、データの永続化を考えるならば/var/opt/gitlab/git-data/repositories
を大事にしていきましょう。
再起動やら
一度コンテナをstop
してrestart
した場合は以下のようなコマンドでGitLab
を再起動する必要があります。ここらへんも自動化するといいでしょう。例によって最後の一行*3は気分的なものです。
# /opt/gitlab/embedded/bin/runsvdir-start & # gitlab-ctl restart # gitlab-ctl reconfigure # gitlab-ctl restart
よき GitLab ライフを
これで GitLab が使えるようになりました。開発案件はもちろんのこと、ドキュメントをはじめとしたファイルの管理にも幅広く使えると思います。活用していきましょう。
余談
日本語化にこだわらなければ GitBucket も素晴らしいプロダクトだと思います。