LoginSignup
1
2

プライベートで 使う Gitサービス を GitLab on dockerで 構築する。

Last updated at Posted at 2024-05-05

設定ファイルなどを git 管理するために GitLab を dockerコンテナ として構築します。
情報が漏洩するリスクを低減するのが目的です。

dockerホストは ubuntu24.04 です。

GitLab は 会社でつかってますが、 プライベートで使うのは初めてです。
会社のは 専門チームが構築・運用していて 私はユーザとして使っています。

今回参考にする 記事は ↓です。

最初にデータの永続化ポイントを作成します。

teto@antlers:/var/opt$ sudo mkdir gitlab
[sudo] teto のパスワード:
teto@antlers:/var/opt$ ls
gitlab
teto@antlers:/var/opt$ cd gitlab/
teto@antlers:/var/opt/gitlab$ pwd
/var/opt/gitlab

この永続化ポイントを 環境変数に 登録します。

export GITLAB_HOME=/var/opt/gitlab
echo export GITLAB_HOME=/var/opt/gitlab >>~/.bashrc

次に docker-compose.yml を 作成します。
プライベートIPなので DNS の設定がないので 直接IPアドレスを書きます。
ポート番号は ちょっとずらしておきます。
参考にした ページには version行が あったけど

teto@antlers:~/gitlab-docker$ docker compose build
WARN[0000] /home/teto/gitlab-docker/docker-compose.yml: `version` is obsolete

って 表示されたので 書かないことにしました。

docker-compose.yml
services:
  web:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: '10.11.7.121'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://10.11.7.121:8000'
        gitlab_rails['gitlab_shell_ssh_port'] = 8022
    ports:
      - '8000:8000'
      - '8022:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'
teto@antlers:~/gitlab-docker$ sudo docker compose pull
[sudo] teto のパスワード:
WARN[0000] The "GITLAB_HOME" variable is not set. Defaulting to a blank string.
WARN[0000] The "GITLAB_HOME" variable is not set. Defaulting to a blank string.
WARN[0000] The "GITLAB_HOME" variable is not set. Defaulting to a blank string.
[+] Pulling 10/10
 ? web Pulled                                                             69.3s
   ? 3c645031de29 Pull complete                                            1.0s
   ? 801c3ec7703e Pull complete                                            0.6s
   ? a4466746bd11 Pull complete                                            1.4s
   ? 137ac216511f Pull complete                                            1.4s
   ? 2440d366ccbf Pull complete                                            1.6s
   ? 96903552f0e1 Pull complete                                            1.9s
   ? c0f255011886 Pull complete                                            1.9s
   ? 417c5452b7d2 Pull complete                                            2.2s
   ? 2605a8d3a84d Pull complete                                           20.8s

あれ? さっき 設定した 環境変数が 見えていないようです。
そうか sudo したらみえないよね。 -E オプションつけよう。

teto@antlers:~/gitlab-docker$ sudo -E  docker compose pull
[+] Pulling 1/1
 ? web Pulled

dockerコマンドを 実行できるようにしたほうが あとあと楽だな。ということで

sudo usermod -a -G docker teto

して dockerを再起動して

teto@antlers:~/gitlab-docker$ docker compose pull
[+] Pulling 1/1
 ? web Pulled

さて 起動します。

teto@antlers:~/gitlab-docker$ docker compose up -d
[+] Running 2/2
 ? Network gitlab-docker_default  Creat...                                 0.1s
 ? Container gitlab-docker-web-1  Start...                                 0.1s

初期パスワードを 取得しないといけません。

teto@antlers:~/gitlab-docker$ docker exec -it gitlab-docker-web-1 grep 'Password
:' /etc/gitlab/initial_root_password
Password: QFhapyAYP2TgCB0pa0CGTJeqBun2S/RlZ9DQhd1ruVo=

設定したURL にアクセスすると
ちょっと待ってね 画面が ひょうじされ そのうち ログイン画面が ひょうじされる。

image.png

ここに ユーザ名 root パスワードは 上で 取得したパスワードを入力してログインした。

さいしょに することは rootパスワードの 変更だ。

image.png

アバターアイコンを くりっくして Edit profile を クリックし、
image.png

Password を クリックすると パスワードが変更できる。

image.png

初期パスワードと 新しいパスワードを入力すると 変更できる。

変更が 成功したら ログイン画面に もどるので 新しい パスワードでログインしなおす。

つぎに 作業用の アカウントを作成する。

左下にある Admin Area から 管理者用の画面に 移動して

image.png

User→New user で 新しいアカウントを作成
image.png

Administrator にしておきました。
image.png

パスワードもてきとうなのを 設定して
ログインしたら パスワード変更画面になりました。

ここまで設定できたら 運用開始でいいかな。

追記

SMTPサーバの 設定を かかないと ユーザの メールアドレスを変更できないことが判明した。

自分しかつかわないので SMTP無しで いいかな。
ということで コンテナの 外で 作業します。

sudo vi /var/opt/gitlab/config/gitlab.rb

gitlab.rb に 次の行を 追加して

gitlab_rails['smtp_enable'] = false

次のコマンドで 設定を 読み込みます。

docker exec -it gitlab-docker-web-1 gitlab-ctl reconfigure

ユーザのメールアドレス変更が メール無しで 実施できました。

次ですが、
設定を 変更したら ターゲットに 展開して 適用するみたいなことを 実現したいな。
GitLab Runner とか ansible つかえば できるかなぁ
それはまた 別の話ですね。

1
2
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
1
2