プライベートのコード管理はGitLabをDockerで動かして使っていたりする。
↓導入とかは以下
先日ver.8.8のリリースがあり、Dockerのリポジトリとして使えるようになったとのことで、 Docker使う頻度が高い身としてはワクワクしている今日この頃。
GitLab Container Registry | GitLab
(GitHubの有料プラン使うのも悪く無いかなと心が揺らいでたタイミングだったんだけど、 またちょっとGitLabを使い続ける理由ができてしまった。)
さて、僕が使ってるのはsameersbn氏の作ってるイメージだったりするのだけど、 これはまだ8.8はできていない様子。
8.8への対応を心待ちにしつつ、今サーバで運用しているのが8.5系だったこともあり、 ひとまず最新の8.7系にアップデートしておこう…と思ったらちょっとだけ引っかかったのでメモ。
ひっかかったところ
とりあえずものは試しでdocker-compose.ymlのimageを最新のsameersbn/gitlab:8.7.6
に書き換えてコンテナを再起動させてみたところ、立ち上がらない感じ。
docker-comose logs コマンドで確認する限りでは、どうやらMigrating database...
あたりで止まっている。
8.5から一足飛びだからまずいのかと思い、8.6系でやってみたが同じくダメ。
より詳しくログを見ていくと、下記のメッセージがあった。
You must enable the pg_trgm extension. You can do so by running "CREATE EXTENSION pg_trgm;" as a PostgreSQL super user, this must be done for every GitLab database. For more information see http://www.postgresql.org/docs/current/static/sql-createextension.html/home/git/gitlab/db/migrate/20160226114608_add_trigram_indexes_for_searching.rb:8:in `up'
どうやらGitLabで使ってるPostgresSQLのDBにエクステンションを加えろとのこと。
対応
というわけで、コンテナに入り指定されたクエリを実行すればよさそう。
docker-compose exec postgresql
でコンテナに入り、
psql -Upostgres -dgitlabhq_production
でGitLabで使用してるDBに入る。
\d #テーブル確認
CREATE EXTENSION pg_trgm;
\q
を実行してexit
でコンテナから抜ける。
これらの作業を行った後、docker-compose.ymlのgitlabのバージョンを8.6.0を経由して8.7.6に上げることができた。
Dockerのプライベートリポジトリは現状Docker-Registryを使っているんだけど、 良い感じのWebUIが見つからなくてしんどいなーと思っていたところなんで、8.8は凄く楽しみ。