2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu 18.04 LTS上にGitLab CEをdocker-composeで構築する

Posted at

この記事は、シリーズ記事「「C#のライブラリプロジェクトをGitLabにpushしたら自動でDLLが書き出されてついでにDocFXで作成されたドキュメントがCloud Run上にデプロイされる」っていうやつをやる」の一部です。

はじめに

とりあえず docker を入れておけば、何かサーバーを立ち上げたいと思った時にさくっと立ち上げる事が出来て便利ですよね。
今回はそんな dockerdocker-compose を使用して、GitLab CE が動作するサーバーを立ち上げてみます。

Ubuntu 18.04 LTS 上に dockerdocker-compose がインストールされている前提で進めていきます。
サーバーのセットアップについては、以前書いた記事がありますので良ければ見てみて下さい。

Ubuntu 18.04 LTS にDocker環境をインストールする

TL;DR;

環境が整っていれば、

1. 以下の内容のファイルを用意して

docker-compose.yml
version: '3'

services:
    git:
        image: 'gitlab/gitlab-ce:12.4.2-ce.0'
        restart: always
        hostname: 'gitlab-ce'
        ports:
            - "80:80"
            - "22:22"
        environment:
            GITLAB_OMNIBUS_CONFIG: |
                external_url 'http://localhost'
                gitlab_rails['lfs_enabled'] = true
                gitlab_rails['lfs_storage_path'] = "/var/opt/gitlab/gitlab-rails/shared/lfs-objects"
                gitlab_rails['time_zone'] = 'Asia/Tokyo'
        volumes:
            - ${PWD}/config:/etc/gitlab
            - ${PWD}/logs:/var/log/gitlab
            - ${PWD}/data:/var/opt/gitlab

2. 同じディレクトリで以下のコマンドを実行するだけです

フロントエンドで立ち上がって、ログなどが見れる

docker-compose up

or

バックグラウンドで立ち上がる

docker-compose up -d

ymlの設定について

使用するイメージ

image: 'gitlab/gitlab-ce:12.5.3-ce.0'

DockerHubにアップされているイメージを使用します。
GitLabCE イメージのタグ一覧は以下から見る事が出来ます。

ポート設定

ports:
   - "80:80"
   - "22:22"

マウントするポートです。
GitLab CE が使用しているポートを素直にそのままホストのポートにマウントしていますが、

ports:
   - "8080:80"
   - "2222:22"

のような設定ももちろん可能です。

GitLabの設定


environment:
    GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost'
        gitlab_rails['lfs_enabled'] = true
        gitlab_rails['lfs_storage_path'] = "/var/opt/gitlab/gitlab-rails/shared/lfs-objects"
        gitlab_rails['time_zone'] = 'Asia/Tokyo'

GitLab CE の設定です。
他に、それぞれの設定が環境変数を持っているようで、それを直接指定する方法もあるようなのですが、対応する環境変数を探すのが面倒だったのでこの方法にしました。

あまりちゃんと試していませんが、ざっくりとこの辺りに書いてある事なら設定できるような気がしています。

ちなみに、external_url は立ち上がっているサーバーのipか、外向けのサーバーならドメインを指定する必要があります。

マウントするボリューム

volumes:
    - ${PWD}/config:/etc/gitlab
    - ${PWD}/logs:/var/log/gitlab
    - ${PWD}/data:/var/opt/gitlab

設定と、ログと、データそのものをバックアップしたかったので、僕は上の3つをホストにマウントする事にしました。
これによって、単にUbuntu上でデータをコピーするだけでバックアップできるようになります。

ちなみに、 docker-compose.yml と docker 環境さえあれば windows でも起動できますが、現時点では仕様上 windows に docker のファイルをマウントできないので、ご注意ください。

終わりに

ソースコードは大分センシティブものなので、クラウドに預けるのはまだ抵抗がある、という人は多いと思います。機密なデータを扱っていればなおさらですね。
オンプレミスで GitLab のサーバーを立ち上げていれば、イントラのみでの運用にできる等運用の柔軟性が生まれ、なおかつ git を使用したバージョン管理システムの恩恵が受けれるので、お勧めです。

2
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?