急に使いたくなった
以前からGitlab
(v7.9)を使用していますが、急に8系1が使用したくなりました。
Jenkins
も以前から使用してい分ければいいやと思っていたのですが、8から2CIが標準で付いてくると聞いてからdocker
で試してはいけそうとやっと始めました。
日本語化
7.9でも日本語化3はしています。
ksoichiroさんの日本語パッチを使用しています。
この記事を書き始めた頃は8.7.0までだったのですがサイトのリンクを張りつつ確認したところ最新に限りなく近い8.11.2があります(笑
いつも利用させてもらっています。今回も早速8.11.2を使わせてもらいました。感謝感謝。
Gitlab(docker)
7.9はDebianからマニュアルでインストールしていたのですが、今回もチャレンジしましたが断念4しました(笑
ほぼほぼ出来上がっている既存のdocker
イメージがいいかなと・・・
gitlab/gitlab-ce
かsameersbn/gitlab
を使用します。
gitlab/gitlab-ce
はofficalっぽいんだけど、書いてないなぁ。
使ってみて、mysql
でなくpostgres
がデフォルト5で変え方が今ひとつ判らなかったのでsameersbn/gitlab
の方を使用します。
イメージ作成
FROM sameersbn/gitlab:8.11.2
MAINTAINER takara
RUN apt-get update && apt-get -y install patch
RUN wget -O app_ja.patch https://raw.githubusercontent.com/ksoichiro/gitlab-i18n-patch/master/patches/v8.11.2/app_ja.patch && \
patch -p1 < app_ja.patch && \
rm app_ja.patch
patch
コマンドが入っていないのでインストールしてw
日本語パッチダウンロードとパッチを実行してるだけです。簡単w
イメージビルド
$ docker build -t gitlab:sameersbn8.11.2 .
redis-server実行
$ docker run --name gitlab-redis -d sameersbn/redis:latest
ほぼセットになっているredis
のが簡単でしょう。
ホスト側のredis-server
に接続しようとしましたが、バージョンが合わないのかこちらにしました・・・
データベース初期化
新規であれば以下のように適当にデータベースを作成します。
$ mysql -u root -ppassword -e "CREATE DATABASE gitlab8.11.2 DEFAULT CHARACTER SET utf8";
既存のデータがあるのであれば、バックアップを取って、実行時に既存のデータベースを指定しましょう。
また、既存のデータがある場合は以下のものを起動後に作成されるフォルダへコピーして再起動するといいでしょう。
既存データの置き場所
コピー先 | コピー元6 |
---|---|
data/.ssh/authorized_keys | /home/git/.ssh/authorized_keys にありました。登録されたSSHキーですね |
data/ssh | sshdのキーファイルですね。/etc/ssh/にありました。 |
data/repositories | リポジトリです。/home/git/repositories/にありました。 |
data/uploads | アップロードされたファイルです。/home/git/uploads/以下のファイルをコピーしました。 |
イメージ実行
$ docker run -itd \
--name gitlab8 \
-h gitlab8 \
-p 80:80 \
-p 22:22 \
--link gitlab-redis:redisio \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string'
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_HOST=gitlab' \
--env 'DB_ADAPTER=mysql2' \
--env 'DB_HOST=172.17.0.1' \
--env 'DB_NAME=gitlab8.11.2' \
--env 'DB_USER=user' \
--env 'DB_PASS=password' \
-v `pwd`/data:/home/git/data \
gitlab:sameersbn8.11.2
-p
オプションはホストOSのポートを差し替えていますが、自分の場合は専用サーバーにしてるのでこんな感じにしています。ホストOS側のssh(22)は他のポートへ逃がしてるのでgitlab
に当てています。
DB_HOST
もホストOS側のmysql
を使用しているのでこのような値になっています。古いdocker
だと172.17.42.1
になったりします。
起動後
起動直後
初めて起動した時はテーブル作成などが走るので数分このような画面になります。
正常起動
正常に起動すると以下のような管理者のパスワードを設定する画面が表示されます。
昔は決まったパスワードだったのですが、いつからかこうなったようです。
管理者でサインイン
管理者のパスワードを正しく設定すると次のような画面が表示されます。
登録済みとして、アカウント「root」、パスワードは先ほど設定したものでサインインします。
サインイン後
最初は何も作成されていないので以下のように「Welcome」画面が表示されます。
設定
右上のスパナマークで管理設定をします。
自分の場合はこれぐらい最初で設定ます。
- 自分のアカウントを登録(管理者)
- 自分のアカウントでサインインし直して「root」アカウントをロックもしくは削除
- サインアップの無効
- インポートするソースのサイトを選択
完了
設定後、サインアウトすると以下のような画面になります。
「初めての方は登録」、サインアップがなくなっていますね。
これでやっとCIが動く環境が整いました。