GitLabをインストールしてさあやるぞ!と思ったら502エラーで開けなかったときの戦ったメモです。
環境
- ホストOS - CentOS8
- Docker - 20.10.17
- GitLab - 3.0
GitLabを設定したアドレスに入ったら502エラー
原因調査
まずDockerのコンテナに入って、、、
docker container exec -it 【コンテナ名】 bash
ログをみる。
cat /var/log/gitlab/gitlab-workhorse/current | less
怪しそうなログを発見。
badgateway: failed to receive response: dial unix /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket: connect: no su ch file or directory
原因:gitlab.socket
が無い
環境構築でごそごそやっている間に消してしまったようです…。
解決策:.gitlab_workhorse_secret
の所有者変更でgitlab.socket
を自動生成させる
とりあえず解決したコードです。
chown -h git:git /opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret
chown git:git /var/opt/gitlab/gitlab-rails/etc/gitlab_workhorse_secret
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl reconfigure
以下詳細なので気になる方はどうぞ。
解決までの経緯
同じように悩んでいる方の回答をみると、
いろいろ試行錯誤した結果、
gitlab.socket
ファイルが存在しなかったり、不正なものだったりした場合は、/opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret
ファイルにアクセスを行い、再度生成しようとするらしいです。ですので、上記のファイルに対するアクセス権限が無いとgitlab.socket
ファイルを作成することが出来ず、500エラーとなっていたようです。
とのこと。
というわけでls -l /opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret
で確認してみると、所有者がrootになっていました。これっぽい。
というわけで変更。
chown -h git:git /opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret
chown git:git /var/opt/gitlab/gitlab-rails/etc/gitlab_workhorse_secret
変更したので、再起動。
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl reconfigure
動いた!gitlab-ctl reconfigure
が30分くらいかかったのでつらかった。
参考
参考にさせていただきました。ありがとうございます。