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

ソースコード をしっかり管理するために バージョン管理システム の gitlab を 導入 します。 commit01 では docker-composeファイルを作成していきます。

gitlabの導入にあたっては少し調査をしてきました。

gitlab で ソースコード管理 ( バージョン管理システム ) を考えてみます

Docker コンテナを使って gitlab を 構築 するにあたって 調査

Dockerでの導入にあたり、docker-compose ファイルの定義からスタートしようと思います。

docker-composeとは

docker-composeは複数のDockerコンテナを論理グループとして扱ったりボリュームを保持したりとDockerを強力にサポートし管理の難易度を下げてくれるすばらしいツールです。

docker-composeはYAML形式で記述するdocker-compose.ymlファイルを用意して実行します。

記述内容はDockerのコマンドと似ている部分もあるので多少学習しやすいかもしれません。

Docker Compose 概要 — Docker-docs-ja 19.03 ドキュメント

早速書いてみます

Dockerのコンテナはまずイメージを用意する必要があります。

このイメージはベースのイメージを用いて自分で作成することもできるのですが、docker hubというDockerのイメージが公開されているサイトのイメージを使うこともできます。

gitlab公式サイトが用意してくれているようなのでこちらを使います。

ひとまずgitlab本体とボリュームコンテナの定義を書きました。

docker-compose.yml

service:
# GitLabのデータボリュームコンテナ
    gitlab-data:
        image: library/busybox:latest
        volumes:
            - ./gitlab/config:/etc/gitlab
            - ./gitlab/logs:/var/log/gitlab
            - ./gitlab/data:/var/opt/gitlab
        networks:
            - work
        logging:
            driver: "json-file"
            options:
                max-size: "100m"
                max-file: "3"
# 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"
    
# ネットワーク定義
networks:
    work:
        external: true

# docker network create -d bridge -subnet=172.100.100.0/24 work

たったこれだけを書くのにえらい労力です😅

しかしOSインストールから諸設定してgitlabインストールするよりもはるかに楽!

解説は次回にでも・・・。

本日は疲れたのでここまで!