この記事は
- Omnibus Gitlab(CE)はOSのパッケージでインストールできるのでとても楽ですが、組み込みのDBはPostgres固定です
- ただしMySQLサーバを自分で立てれば、使うことはできるようなのでやってみました
前提
- Ubuntu14で試しました
- MySQL及び諸々ビルド関連のパッケージはインストール済みとします
-
mysql -u root
で入れる状態とします(気になる人はちゃんとユーザ作ってください) - my.cnfにutf8関連の設定を入れておきます
-
手順詳細
Omnibus Gitlab(CE)のインストール
- 普通にインストールなので割愛
- 基本的にはapt-getでインストールするだけです
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
完了!
- 普通に http://localhost/ でアクセスすれば動いてます
終わりに
- bundlerのwithout設定はアップデートの都度に入れ直さなくてはならないところが相当微妙だなぁと思いました
- Gemfileの中でわざわざgroup作ってmysql2 gemをよけてるんだけど別によけないで入れておけばいいのにとか思いました