LoginSignup
2
1

More than 5 years have passed since last update.

Omnibus Gitlab(CE)をMySQLで動かす

Posted at

この記事は

  • Omnibus Gitlab(CE)はOSのパッケージでインストールできるのでとても楽ですが、組み込みのDBはPostgres固定です
  • ただしMySQLサーバを自分で立てれば、使うことはできるようなのでやってみました

前提

  • Ubuntu14で試しました
  • MySQL及び諸々ビルド関連のパッケージはインストール済みとします
    • mysql -u rootで入れる状態とします(気になる人はちゃんとユーザ作ってください)
    • my.cnfにutf8関連の設定を入れておきます

手順詳細

Omnibus Gitlab(CE)のインストール

gitlab.rbの編集

  • DBクライアントをmysqlにするためにgitlab.rbを下記のように編集します
/etc/gitlab/gitlab.rb
gitlab_rails['db_adapter'] = "mysql2"
gitlab_rails['db_encoding'] = "utf8"
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_username'] = "root"
gitlab_rails['db_password'] = nil
gitlab_rails['db_host'] = "127.0.0.1"
gitlab_rails['db_port'] = 3306
postgresql['enable'] = false

databaseの作成

  • databaseを作っておきます
mysql -u root -e "create database gitlabhq_production default character set utf8"

mysql2のビルド

  • 下記の手順で先にmysql2 gemをビルドしておきます
cd /opt/gitlab/embedded/bin/ # use the gem binary package builded
./gem install mysql2 -- --with-mysql-lib=/usr/lib64/mysql

bundler設定ファイルの変更

  • bundle installの時のwithoutオプションを変更しpostgresを指定(mysqlを消去)します
/opt/gitlab/embedded/service/gitlab-rails/.bundle/config
---
BUNDLE_RETRY: "5"
BUNDLE_PATH: "/opt/gitlab/embedded/service/gem"
BUNDLE_JOBS: "9"
BUNDLE_WITHOUT: "development:test:postgres"
BUNDLE_DISABLE_SHARED_GEMS: "true"
  • bundle installの実行をします
cd /opt/gitlab/embedded/service/gitlab-rails
/opt/gitlab/embedded/bin/bundle install
  • ただこの修正はgitlabのパッケージをアップデートするたびにリバートしてしまうので毎回実施する必要があるとか
    • 微妙だなぁ。。

Gitlabのリビルド

  • Chefを動かしてリビルドします
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:setup

完了!

終わりに

  • bundlerのwithout設定はアップデートの都度に入れ直さなくてはならないところが相当微妙だなぁと思いました
  • Gemfileの中でわざわざgroup作ってmysql2 gemをよけてるんだけど別によけないで入れておけばいいのにとか思いました

参照

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1