CodeZine(コードジン)

特集ページ一覧

Dockerでソースコードのバージョン管理ツール「GitLab」を動かしてみよう

Dockerをつかったイマドキのアプリ開発環境構築入門 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/12/14 14:00

目次

GitLab用コンテナの起動

 DockerHubにGitLab用の公式イメージはありませんが、有志によるさまざまなGitLab用のイメージが公開されています。今回はsameersbn/gitlabを使って構築します。

 まず、sameersbn/gitlabのイメージは以下のURLで公開されています。

sameersbn/gitlabのイメージ
sameersbn/gitlabのイメージ

 執筆時のバージョンは、ubuntu:14.04をベースイメージとし、GitLabのバージョン8.2.1を使って環境を構築しています。Dockerfileが公開されていますので、どのような環境が構築されているかの詳細を確認することができます。

 また、GitLabのデータを保存するにはデータベースサーバも必要になります。そのため、Docker Composeを使って、複数のコンテナを同時に稼働させます。

 Docker Compose用の構成管理ファイルであるdocker-compose.ymlは以下で公開されています。

 まず、新しいAWS EC2インスタンスを起動します。EC2インスタンスの起動手順はDockerをつかったイマドキのアプリ開発環境構築入門 第1回を参考にしてください。起動したEC2インスタンスにターミナルログインしてホームディレクトリに「gitlab」という名前の作業用ディレクトリを作成します。

リスト1 docker-compose.ymlの作成
$ mkdir gitlab && cd $_

 次に、docker-compose.ymlを、wgetコマンドを使ってダウンロードします。

リスト2 docker-compose.ymlのダウンロード
$ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

$ ls
docker-compose.yml

 ダウンロードしたdocker-compose.ymlを開き、PostgreSQL用コンテナ(postgresqlコンテナ)およびGitLab(gitlabコンテナ)の環境変数を自身の環境にあわせて修正します。

表1 PostgreSQL用コンテナの環境変数
環境変数名 設定例 説明
DB_USER gitlab DBのユーザ名
DB_PASS password DBのパスワード
DB_NAME gitlabhq_production DBの名前

 同様にGitLab用コンテナの環境変数も修正します。EC2インスタンスの80番ポートにアクセスした際にGitLabにアクセスできるよう、GITLAB_PORTの値を80にします。また、ポートの転送を以下のように修正します。

リスト3 docker-compose.ymlのダウンロード
ports:
  - "80:80"
  - "10022:22"

noreply@example.comGitLabの返信用メールアドレス

表2 GitLab用コンテナの環境変数
環境変数名 設定例 説明
TZ Asia/Tokyo タイムゾーン
REDMINE_PORT 10083 Redmineのポート
SMTP_ENABLED false メールを利用するかどうか
SMTP_DOMAIN www.example.com メールのドメイン
SMTP_HOST smtp.gmail.com メールサーバのアドレス
SMTP_PORT 587 SMTPのポート番号
SMTP_USER mailer@example.com メールのアカウント
SMTP_PASS password メールのパスワード
SMTP_STARTTLS true STARTTLS(平文の通信プロトコルを暗号化)するかどうか
SMTP_AUTHENTICATION :login SMTP認証のメソッド
GITLAB_TIMEZONE Tokyo GitLabのタイムゾーン
GITLAB_HOST localhost GitLabのホスト名
GITLAB_PORT 80 GitLabのポート番号
GITLAB_SSH_PORT 10022 GitLabのSSHポート番号
GITLAB_EMAIL admin@example.com GitLabの管理者メールアドレス
GITLAB_EMAIL_REPLY_TO noreply@example.com GitLabの返信用メールアドレス
GITLAB_BACKUPS daily バックアップのタイミング
GITLAB_BACKUP_TIME 01:00 バックアップの時間

 修正すると、docker-compose.ymlは次のようになります。

リスト4 docker-compose.ymlのダウンロード
postgresql:
  image: sameersbn/postgresql:9.4-3
  environment:
    *1*
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production
    */1*
~中略~
gitlab:
  image: sameersbn/gitlab:7.14.3

~中略~
  ports:
    - "80:80"
    - "10022:22"
~中略~
  environment:
    *2*
    - TZ=Asia/Tokyo
    - SMTP_ENABLED=false
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=login
    - GITLAB_TIMEZONE=Kolkata
    - GITLAB_HOST=localhost
    - GITLAB_PORT=80
    - GITLAB_SSH_PORT=10022
    - GITLAB_EMAIL=admin@example.com
    - GITLAB_EMAIL_REPLY_TO=noreply@example.com
    - GITLAB_BACKUPS=daily
    - GITLAB_BACKUP_TIME=01:00
    */2*
~中略~

 他の環境変数を設定するときは、以下のサイトを参照してください。

 docker-compose.yml の用意ができたら、docker-compose upコマンドを実行し、コンテナを起動します。起動すると、Gitlabコンテナ、PostgreSQLコンテナ、Redisコンテナの3つのコンテナが起動します。

リスト5 コンテナ群の起動
$ sudo /usr/local/bin/docker-compose up
Recreating gitlab_postgresql_1...
Recreating gitlab_redis_1...
Recreating gitlab_gitlab_1...
Attaching to gitlab_postgresql_1, gitlab_redis_1, gitlab_gitlab_1
~中略~

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Dockerをつかったイマドキのアプリ開発環境構築入門

著者プロフィール

  • WINGSプロジェクト 阿佐 志保(アサ シホ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5