VM構築
下記のスペックで構築
- IPアドレス:192.168.0.105
- AlmaLinux8.7
- CPU:4Core
- MEM:8GB
- DISK:100GB
Dockerインストール
以下の記事を参考にDockerとdocker-composeを導入
Dockerで構築する
公式を参考に構築する。
マウント用ディレクトリ作成
GitLabとGitLabRunner用のディレクトリ作成
# mkdir /srv/gitlab
# mkdir /srv/gitlab-runner
docker-compose設定ファイル作成
# vi /srv/gitlab/docker-compose.yml
- 公式だと
gitlab-ee
になっているが、gitlab-ce
で構築する。 -
export GITLAB_HOME=/srv/gitlab
で環境変数を使ってディレクトリ指定するようになっていたが、変数は使わずdocker-compose.ymlに直接パスを記載。 -
GITLAB_OMNIBUS_CONFIG
で設定を変更することができる。 - 22番ポートは、ホスト(VM)のsshdで使われているので、公式に記載されているポートに変更。
- コンテナレジストリとしても使いたいので、
registry_external_url
を設定 - GitLabRunnerもコンテナで立てるように設定。
docker-compose.yml
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
registry_external_url 'http://192.168.0.105:5000'
ports:
- '80:80'
- '443:443'
- '2224:22'
- '5000:5000'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
gitlab-runner:
image: gitlab/gitlab-runner:latest
restart: always
volumes:
- /srv/gitlab-runner/config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
コンテナ作成
docker-compose up -d
してから、GITLAB_OMNIBUS_CONFIG
の設定をもとに構築が始まります。
すぐに立ち上がるわけではなく、コンテナが立ち上がってから構築が始まるので待ちましょう。
# cd /srv/gitlab/
# docker-compose up -d
構築中のログは、docker logs -f gitlab-web-1
で確認できる。
起動を確認する
構築中は、GitLabコンテナのSTATUSがstartingになっている。
この状態で、GitLabにブラウザ接続すると502エラーが表示されるが、まだ構築中なので待つ。
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1511e011b023 gitlab/gitlab-runner:latest "/usr/bin/dumb-init …" 6 seconds ago Up 6 seconds gitlab-gitlab-runner-1
4b52782e2ed9 gitlab/gitlab-ce:latest "/assets/wrapper" 6 seconds ago Up 6 seconds (health: starting) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:2224->22/tcp, :::2224->22/tcp gitlab-web-1
STATUSがhealthyになったら構築完了
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1511e011b023 gitlab/gitlab-runner:latest "/usr/bin/dumb-init …" 3 minutes ago Up 3 minutes gitlab-gitlab-runner-1
4b52782e2ed9 gitlab/gitlab-ce:latest "/assets/wrapper" 3 minutes ago Up About a minute (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:2224->22/tcp, :::2224->22/tcp gitlab-web-1
GitLabにアクセス
構築したGitLabにアクセスしてみる。
自己署名証明書を使ってSSL化してくれた状態で構築されているようである。
GitLabにログイン
GitLabの初期ユーザー(rootユーザー)のパスワードは、以下のコマンドで確認可能。
# docker exec gitlab-web-1 cat /etc/gitlab/initial_root_password
複雑なパスワードになっていて使いづらいので、ログイン後に変更しておく。
おわり
とりあえず、ここまでの手順でGitLabの構築が完了。