GitLab 13リリース！！（アップデートでハマった。。。）

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

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


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


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

追記）13 => 14へアップデート

https://qiita.com/teracy55/items/9916ac04bcfcd854a354


# 構成

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

https://qiita.com/teracy55/items/2f9ecaafc0a042c1f6df



# アップデート手順

- バックアップ(v12.4.2)取得
    - gitlabコンテナ内で`gitlab-backup create`を実行
    - もしくはホスト側で`docker exec -t gitlab gitlab-backup create`を実行
    - 参考：https://docs.gitlab.com/ee/raketasks/backup_restore.html
- `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`で新しいバージョンでコンテナ作成

　↓

<strong><font color="red">エラー</font></strong>



# 原因

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のコンテナを作成