Ubuntu+Docker環境で「GitLab」を構築してみる

Ubuntuサーバ + Docker環境に、GitLabを構築していきます。

Ubuntuサーバの構築方法はこちら

仮想マシン設定

Requirements

上記でGitLabのシステム要件を確認すると、最低でもCPU 4コア、メモリ 4GB必要とのこと。
仮想マシンのCPUとメモリも上記に合わせて設定しておきます。

  • CPU
picture 13
  • メモリ
picture 12

Docker構築

Dockerインストール

まずはDockerをインストールします。
apt installではなく、dockerが用意しているインストール用シェルスクリプトを使います。

curl https://get.docker.com | sh
picture 1

dockerが常時起動するように設定します。

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
picture 2

ユーザをDockerグループに追加します。
これにより、dockerコマンドをsudoなしで実行可能となります。
追加後、設定を反映させるため、再起動します。

sudo usermod -aG docker <UserName>
sudo reboot
picture 3

再起動後、dockerが自動で起動しているか確認します。

docker --version
sudo systemctl status docker
picture 4

Docker-Composeインストール

次に、Docker-Composeをインストールします。
現時点でのDocker-Composeのバージョンはv2.14.2だったので、以下のコマンドを実行します。
※バージョン確認はこちら

sudo curl -L https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
picture 5

docker-composeコマンドを実行できるように実行権限を設定し、動作確認。

sudo chmod +x /usr/local/bin/docker-compose
sudo docker-compose --version
picture 6

GitLab構築

docker-compose.yml

docker-compose.yml作成。
ローカルネットワークでしか使わないので、sshとかhttpsとかの設定はなし。
外部DBとかも使用しない。使っててなにかあれば別途対応。

GitLabにアクセスするためのURLは、「http://”ip address”:”port”」か、ホスト名を設定していれば「http://”host name”:”port”」となります。
ローカル環境であれば、こちらの方法でホスト名が設定できます。
httpポートは、50080でアクセスして、80ポートにリダイレクトするように設定しました。

また、GitLabはユーザ登録時にメール認証を使用するので、メール送信設定も行います。
SMTPサーバはGmailなりOutlookなりのフリーメールを使用。

だいたいの設定方法はGitLabのSMTP settingsで確認できます。

version: '3'
services:
  gitlab:
    container_name: gitlab
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://aru-server:50080'
        nginx['listen_port'] = 80
        gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = "<mail-address>"
        gitlab_rails['gitlab_email_display_name'] = "GitLab Admin"
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = "smtp.outlook365.com"
        gitlab_rails['smtp_port'] = 587
        gitlab_rails['smtp_user_name'] = "<mail-address>"
        gitlab_rails['smtp_password'] = "<mail-password>"
        gitlab_rails['smtp_domain'] = "<domain-name>"
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
    ports:
      - '50080:80'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'

docker-compose実行

作成したdocker-compose.ymlと同じディレクトリで、docker-composeを実行します。

docker-compose up -d
picture 7

接続ポート開放

50080でアクセスするため、ポート開放します。

sudo ufw allow from 192.168.10.0/24 to any port 50080
picture 8

GitLab初期設定

初期パスワード確認

GitLabには、管理者ユーザとしてrootユーザが登録されています。
rootユーザのパスワードは、以下のコマンドで確認できます。
※このパスワードは、24時間後に削除されてしまうため、初回ログイン時にパスワードを変更します。

docker exec gitlab cat /etc/gitlab/initial_root_password
picture 9

接続確認

docker-composeのexternal_urlで設定したURLにアクセスします。
※docker-compose直後だと、接続できない場合があります。しばらく経ってから接続してみてください。

http://aru-server:50080

接続できると、ログイン画面が表示されます。

picture 10

rootユーザでログインします。

picture 11

日本語化

右上のアイコンをクリックし、「Preferences」を選択します。

picture 14

Localization > Languageの設定を「Japanese – 日本語」に設定し、Save changesボタンをクリックします。

picture 15

rootユーザのパスワードを変更する

右上のアイコンをクリックし、「設定」を選択します。

picture 16

左のサイドバーから、「パスワード」を選択します。

picture 17

現在のパスワードに、rootログインで使用したパスワードを入力し、新しいパスワードに変更します。

picture 18

メール送信を確認する

左のサイドバーからメールを選択します。
送信先のメールアドレスを入力し、メールアドレス追加ボタンをクリックします。

picture 23

設定ができていれば、追加したメールアドレスに確認メールが送信されます。

ユーザの追加方法を設定する

管理者のみがユーザを追加できるように設定を変更します。
左上のメニューから、「管理者」を選択します。

picture 19

左のサイドバーから、設定 > 一般を選択し、サインアップの制限の「Sign-up enabled」と「Require admin approval for new sign-ups are enabled」のチェックを外して変更を保存します。

picture 20

ユーザを追加する

左のサイドバーから概要 > ユーザーを選択します。

picture 21

新しいユーザをクリックします。

picture 22

名前、Username、メールアドレスを入力し、画面下のCreate userをクリックします。
名前はGitLab上の表示名、Usernameはログイン時に使用するUsernameとなります。

picture 24

ユーザが作成されました。

picture 25

パスワードを設定するため、右側の編集をクリックします。

picture 26

パスワードを設定して、変更を保存します。

picture 27

作成したユーザとパスワードでログインします。

picture 28

初回ログイン時、パスワードの変更を求められるので、新しいパスワードを入力して変更します。

picture 29

新しいパスワードで再度ログインすると、GitLabのホーム画面が表示されます。

picture 30

まとめ

Dockerの構築から、GitLabの構築、ユーザ追加までまとめました。
次は作成したユーザの設定やらリポジトリの作成やらをまとめたいと思います。

参考URL

dockerとdocker-composeのインストール(Linux編)
Dockerコンテナでgitlabを構築してみた
docker-composeでGitLab
Dockerを用いたGitLabサーバのオンプレミス構築
GitLabの初期パスワード
SMTP settings