12
12

DockerイメージからGitLab環境を構築(GitLab&Runner)

Last updated at Posted at 2023-05-05

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の構築が完了。

12
12
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
12
12