【GitLab】アップグレード時のエラー対処法
発生した問題
GitLab-eeのlatestイメージを使用していて、イメージを作り直した(タグが最新になった)とき、 起動できなくなりました。
具体的に言うと、18.3.0-ee.0から18.6.0-ee.0にグレードアップする際に問題が発生しました。
特定バージョンを経由してアップグレード
1つ目の問題は18.3.0-ee.0から18.6.0-ee.0にアップグレードするには、
18.5.xを経由しないといけないということです。
ログを確認して見ます。
docker-compose logs gitlab
下記が問題のログです。
gitlab | docker exec -it gitlab editor /etc/gitlab/gitlab.rb
gitlab | docker restart gitlab
gitlab |
gitlab |
gitlab | For a comprehensive list of configuration options please see the Omnibus GitLab readme
gitlab | https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
gitlab |
gitlab |
gitlab | If this container fails to start due to permission problems try to fix it by executing:
gitlab |
gitlab |
gitlab | docker exec -it gitlab update-permissions
gitlab | docker restart gitlab
gitlab |
gitlab |
gitlab | Cleaning stale PIDs & sockets
gitlab | It seems you are upgrading from 18.3.0-ee to 18.6.0.
gitlab | It is required to upgrade to the latest 18.5.x version first before proceeding.
gitlab | Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/#upgrade-paths
18.3.0から18.6.0にあげるには、まず18.5.xにあげてね。
って言ってますね。
言われた通り18.5.2-ee.0に変更します。
services:
gitlab:
image: gitlab/gitlab-ee:18.5.2-ee.0
# いろいろ省略
docker-compose down --rmi all
docker-compose up -d
そして、18.6.0-ee.0に変更します。
services:
gitlab:
image: gitlab/gitlab-ee:18.6.0-ee.0
# いろいろ省略
docker-compose down --rmi all
docker-compose up -d
こうすると、この問題は解決しました。
起動コマンド変更
2つ目の問題は起動コマンドが変更になっていたことです。
証明書を独自に使用させるためにentrypointをいじっていた影響で、起動できなくなりました。
ログを確認して見ます。
docker-compose logs gitlab
下記が問題のログです。
gitlab | sh: 5: /assets/wrapper: not found
docker-compose.yamlは下記のような形です。
services:
gitlab:
image: gitlab/gitlab-ee:18.6.0-ee.0
# いろいろ省略
entrypoint: >
sh -c "
mkdir -p /etc/gitlab/ssl ;
ln -s /etc/ssl/certs/gitlab/RSA-fullchain.pem /etc/gitlab/ssl/example.com.crt ;
ln -s /etc/ssl/certs/gitlab/RSA-privkey.pem /etc/gitlab/ssl/example.com.key ;
/assets/wrapper
"
「/assets/wrapper」というのが「/assets/init-container」に変更になったみたいです。
ということで、entrypointを下記のように変更してみると、無事起動できました。
services:
gitlab:
image: gitlab/gitlab-ee:18.6.0-ee.0
# いろいろ省略
entrypoint: >
sh -c "
mkdir -p /etc/gitlab/ssl ;
ln -s /etc/ssl/certs/gitlab/RSA-fullchain.pem /etc/gitlab/ssl/example.com.crt ;
ln -s /etc/ssl/certs/gitlab/RSA-privkey.pem /etc/gitlab/ssl/example.com.key ;
/assets/init-container
"
docker-compose down --rmi all
docker-compose up -d
まとめ
GitLabのマイナーバージョンのバージョンアップで、まさかここまで影響出るとは思いませんでした…。
マイナーバージョンだからと言って、その影響度は開発者に委ねられているので、安易に信用すると危ないですね。
個人で使っていたので適当にバージョン上げましたが、仕事ならしっかり影響調査しましょう。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。