Docker で Ubuntu に 日本語化した GitLab をインストールする

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

下のような画面が出れば無事インストール完了です。 f:id:gregminster:20161122005255p:plain

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ブラウザ で所定のアドレス(ポート)にアクセスし、以下のような画面が出ればインストールは完了です! f:id:gregminster:20161122010737p:plain

設定やらデータの永続化やら

各種設定(SMTP も含む)は/etc/gitlab/gitlab.rbを編集する必要があります。また、データの永続化を考えるならば/var/opt/gitlab/git-data/repositoriesを大事にしていきましょう。 f:id:gregminster:20161122011053p:plain

再起動やら

一度コンテナをstopしてrestartした場合は以下のようなコマンドでGitLabを再起動する必要があります。ここらへんも自動化するといいでしょう。例によって最後の一行*3は気分的なものです。

# /opt/gitlab/embedded/bin/runsvdir-start &
# gitlab-ctl restart
# gitlab-ctl reconfigure
# gitlab-ctl restart

よき GitLab ライフを

これで GitLab が使えるようになりました。開発案件はもちろんのこと、ドキュメントをはじめとしたファイルの管理にも幅広く使えると思います。活用していきましょう。

余談

日本語化にこだわらなければ GitBucket も素晴らしいプロダクトだと思います。

*1:迅速なパッチ対応に感謝!

*2:私は止まりました

*3:と、 reconfigureも

Powered by はてなブログ