Help us understand the problem. What is going on with this article?

GitLab 13リリース!!(アップデートでハマった。。。)

GitLab13がリリースされました!

https://about.gitlab.com/releases/2020/05/22/gitlab-13-0-released/

早速バージョンアップしてみました。
が、いつものノリでバージョンアップしようとしたら起動できなかったので備忘録を残しておこうと思います。

※ちなみに元のバージョンは12.4.2です。

構成

docker-composeにてgitlabコンテナとgitlab-runnerコンテナを立ち上げてます
詳細は以下の記事をご覧ください

GitLab-CIでHerokuにデプロイするまでの奮闘記

アップデート手順

  • バックアップ(v12.4.2)取得
  • docker-compose downで古いバージョンのコンテナを削除
  • docker-compose.ymlを修正
    • gitlab:gitlab/gitlab-ce:13.0.0-ce.0
    • gitlab-runner:gitlab/gitlab-runner:v13.0.0
  • docker-compose upで新しいバージョンでコンテナ作成

 ↓

エラー

原因

Postgresへの接続に失敗していた

Postgresのバージョンは最低11でないといけない

調べたところ、GitLab13からPostgresのバージョンは11以上でないといけなくなったようです。
https://docs.gitlab.com/omnibus/update/gitlab_13_changes.html#postgresql-11-becoming-minimum-required-version

Postgresのバージョンアップ方法

以下のコマンドでアップデートできるらしい
参考: https://docs.gitlab.com/omnibus/settings/database.html#gitlab-128-and-later

docker exec -t gitlab gitlab-ctl pg-upgrade -V 11

試してみたが、エラーになった。。。
⇒GitLab12.4.2だと-Vオプションはないっぽい。。。

root@f8abdac87dcf:/# gitlab-ctl pg-upgrade -V 11
Traceback (most recent call last):
        6: from /opt/gitlab/embedded/bin/omnibus-ctl:23:in `<main>'
        5: from /opt/gitlab/embedded/bin/omnibus-ctl:23:in `load'
        4: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/bin/omnibus-ctl:31:in `<top (required)>'
        3: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/lib/omnibus-ctl.rb:746:in `run'
        2: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/lib/omnibus-ctl.rb:204:in `block in add_command_under_category'
        1: from /opt/gitlab/embedded/service/omnibus-ctl/pg-upgrade.rb:68:in `block in load_file'
/opt/gitlab/embedded/service/omnibus-ctl/lib/gitlab_ctl/pg_upgrade.rb:155:in `parse_options': invalid option: V (OptionParser::InvalidOption)
        6: from /opt/gitlab/embedded/bin/omnibus-ctl:23:in `<main>'
        5: from /opt/gitlab/embedded/bin/omnibus-ctl:23:in `load'
        4: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/bin/omnibus-ctl:31:in `<top (required)>'
        3: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/lib/omnibus-ctl.rb:746:in `run'
        2: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/lib/omnibus-ctl.rb:204:in `block in add_command_under_category'
        1: from /opt/gitlab/embedded/service/omnibus-ctl/pg-upgrade.rb:68:in `block in load_file'

一旦 GitLab 12.10.0にアップデートしてやる

12.10.0はデフォルトでPostgres11らしいので、12.4.2⇒12.10.0のアップデートを挟む
参考:https://docs.gitlab.com/omnibus/settings/database.html#gitlab-1210-and-later

最終的なバージョンアップ手順

  • バックアップを取得
  • docker-compose downで一旦古いバージョンのコンテナを削除
  • docker-compose.ymlを修正(v12.10.0)
    • gitlab:gitlab/gitlab-ce:12.10.0-ce.0
    • ※gitlab-runnerの方は更新しなくても問題ない
  • バックアップを取得(v12.10.0)
    • 起動できているか確認
  • docker-compose downで一旦古いバージョンのコンテナを削除
  • docker-compose.ymlを修正(v.13.0.0)
    • gitlab:gitlab/gitlab-ce:13.0.0-ce.0
    • gitlab-runner:gitlab/gitlab-runner:v13.0.0
  • docker-compose upでバージョン13のコンテナを作成
teracy55
2011年からエンジニアやってます。 5年ほど組み込みエンジニアとしてC/C++でカーナビ開発、その後Web系にスキルチェンジし、Java、PHPでのWebシステム開発、現在はAngularやExpress.jsでTypescript/JavascriptのWebシステム開発を行っています。 それ以外にもAndroid/iOSアプリ開発を行っています(Monaca、CocosCreator)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした