2020年5月18日月曜日

Gitlab をソースコードからインストールしてみた (master ブランチ編)

概要

前回 11.8-stable ブランチのソースコードを clone してソースコードからインストールしてみました
今回は master ブランチを clone してビルドしてみます
基本的には前回と同じなので前回と違う手順だけ紹介します

環境

  • GitLab Enterprise Edition 13.0.0-pre 52c7947911d
  • Ruby 2.6.5 (rvm)
  • Golang 14.2
  • それ以外は前回と同じ

rack_attack.rb.example がなくなっていた

rack_attack_new.rbrack_attack_logging.rb がすでに配置されているので特にサンプルからコピーする作業がなくなりました

native extension をビルドするために必要なパッケージが増えた

  • sudo apt -y install libicu-dev cmake libkrb5-dev libre2-dev

clone するリポジトリが異なる

foss ではなく gitlab 本体を clone しましょう
またブランチも指定しません

  • git clone --depth 1 https://gitlab.com/gitlab-org/gitlab.git gitlab

unicorn.rb -> puma.rb になっている

Web サーバが unicorn から puma になっているので配置する設定ファイルも puma.rb を配置します

  • cd /home/git/gitlab
  • cp config/puma.rb.example config/puma.rb

systemctl start gitlab 起動しない

エラー分は「Cannot allocate memory - daemon (Errno::ENOMEM)」でした
愚直に vagrant のメモリサイズを 4GB -> 6GB にしたところうまく起動しました

config.vm.provider "virtualbox" do |vb|
  vb.memory = 6144
  vb.cpus = 2
end

基本的には /etc/init.d/gitlab start で手動実行してログを確認しながらトラブルシューティングしてみましょう

起動はしているが systemctl のステータスは failed になってしまう

起動スクリプトの pid ファイルをチェックする部分がおかしいようです
問題なく動作しているのに exit 1 しているためです

  • sudo vim /etc/init.d/gitlab
wait_for_pids(){
  i=0;
  while [ ! -f $web_server_pid_path ] || [ ! -f $sidekiq_pid_path ] || [ ! -f $gitlab_workhorse_pid_path ] || { [ "$mail_room_enabled" = true ] && [ ! -f $mail_room_pid_path ]; } || { [ "$gitlab_pages_enabled" = true ] && [ ! -f $gitlab_pages_pid_path ]; } || { [ "$gitaly_enabled" = true ] && [ ! -f $gitaly_pid_path ]; }; do
    sleep 0.1;
    i=$((i+1))
    if [ $((i%10)) = 0 ]; then
      echo -n "."
      break;
    elif [ $((i)) = 301 ]; then
      echo "Waited 30s for the processes to write their pids, something probably went wrong."
      exit 1;
    fi
  done
  echo
}

これでステータスが正常で終了します

最後に

Gitlab のインストールをソースコードから行ってみました
基本的には前回と同じでしたが使用している gem が増えていたりしていたので必要なパッケージが増えていたり puma が標準になっていたりとやや違いがありました
メジャーバージョンアップするごとに毎回ビルドを試してみても良いかもしれません
おそらくバージョンアップするたびにエラーになるような気がします

0 件のコメント:

コメントを投稿