ソースコード をちゃんと管理 バージョン管理システム gitlab を 導入 commit05

ソースコード をしっかり管理するために バージョン管理システム の gitlab を 導入 します。 commit05 では service定義したgitlabの設定項目を解説します。

前回はgitlab-dataのサービスについて解説しました。

ソースコード をちゃんと管理 バージョン管理システム gitlab を 導入 commit04

今回はgitlabのサービスについて解説します。

いかのような構成にしています。

gitlab:
    image: gitlab/gitlab-ee:14.1.0-ee.0
    restart: always
    volumes_from:
        - gitlab-data
    expose: 
        - "80"
    ports:
        - "80:80"
    mem_limit: 4g
    environment:
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'https://git.ik-genety.com'
          gitlab_rails['time_zone'] = 'Asia/Tokyo'
          alertmanager['flags'] = {'cluster.advertise-address' => '127.0.0.1:9094'}
    networks:
        - work
    logging:
        driver: "json-file"
        options:
            max-size: "100m"
            max-file: "3"

image

DockerHubにgitlabの公式イメージがありました。
自分で作成すると時間がかかるので助かります!

バージョンはこのときの最新だったgitlab/gitlab-ee:14.1.0-ee.0を使用します。

restart

Dockerが起動した際、このサービスも自動で起動するようalwaysを指定しました。

ストレージ用のコンテナであるgetlab-dataはそのような指定はしていません。
ストレージ用のコンテナというのは「ただ定義がある」というだけでよいようです。

volumes_from

ストレージ用のコンテナを指定します。
これで特定のフォルダ配下のファイルはコンテナを削除しても永続化されるわけです!

expose

ネットワーク内のサービス用に80ポートを開けました。
・・・別のコンテナから呼び出されることなんてないので必要なかったかもしれません😅

ports

gitlabのコンテナはポート80でサービスを提供するようです。
ホスト側のポート80とつなぎ(ポートフォワード?)、外部からこのコンテナにアクセスできるようにしています。

mem_limit

gitlabは最低でもメモリ4GB推奨とのこと。Dockerはホストのメモリを共有し、コンテナで負荷が高まれば無尽蔵にメモリを使います。
この問題を抑制するために設定しました。

emvironment

gitlab独自の環境変数です。書き方はいろんなサイトを見よう見まねで記述しました。

URLやタイムゾーンを設定しています。

altermanagerの設定については以下の問題に対応するものです。

さくらVPSのUbuntuにGitLabを入れて初期設定するまで – Qiita

networks

参加するネットワークです。gitlab-dataと同じネットワークにしています。

logging

gitlab-dataと同様の設定です。

大量のログで容量をひっ迫しないよう、1ファイル100MBまで、3ファイルでログローテーションを自動で行ってくれます。

 

以上でgitlabの設定は完成したかと思います。
しかしまだ終わりではありません。
定義はできたので今度はビルドして動作するか確認が待っています。

それはまた次回に😉

今日はここまで!