はじめに
GitLabCEを業務で使用しているのだが、Dockerではなく素でインストールされている。
※そもそも自分で構築したのだが
Dockerで構築する場合にはどのようにしたら良いのか知りたかったので実際に構築してみた。
環境
Windows 10 Professional
WSL2 (Ubunutu22.04 LTS)
docker version 20.10.24
Docker Compose version v2.17.2
準備
作業ディレクトリに移動し、下記を実行する。
export GITLAB_HOME=$HOME/gitlab-docker
構成
下記を作成する。
【作業ディレクトリ】(今回は、~/gitlab-dockerとする)
├── compose.yml
└── gitlab
└── Dockerfile
compose.yml
# https://hub.docker.com/r/gitlab/gitlab-ce
services:
gitlab:
build: ./gitlab
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG:
external_url 'http://gitlab.example.com/'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
ports:
- '80:80'
- '443:443'
- '22:22'
shm_size: '256m'
gitlab/Dockerfile
FROM gitlab/gitlab-ce:15.10.2-ce.0
下記で立ち上げる。(※立ち上げには時間がかかるので、 docker compose logs -f
で確認しておくと良い)
docker compose up -d
初回ログイン
hosts
に 127.0.0.1 gitlab.example.com と入れて、
http://gitlab.example.com/users/sign_in にアクセスする。
パスワードについて
パスワードがわからないので調べてみると、下記でわかるようだ。
https://www.gitlab.jp/blog/2022/05/27/initial-password/
docker compose exec gitlab cat /etc/gitlab/initial_root_password
下記のように出てくる。
$ docker compose exec gitlab cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: WIhKtf/enmOoJyCkpNVGxXDqDgSoTe/OuH0lDBLfLJY=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
ID: root
PW: WIhKtf/enmOoJyCkpNVGxXDqDgSoTe/OuH0lDBLfLJY=
で入れる。
プロジェクトの作成
プロジェクトのクローン & コミット + プッシュまで
- 適当な作業ディレクトリに移動し、
git clone
をする。
git clone http://gitlab.example.com/gitlab-instance-e29b5099/test-project.git
~/work$ git clone http://gitlab.example.com/gitlab-instance-e29b5099/test-project.git
Cloning into 'test-project'...
Username for 'http://gitlab.example.com': root
Password for 'http://root@gitlab.example.com':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
- 適当なファイルをつくってステージングし、コミットまで
cloneしたプロジェクトに移動する。
cd test-project/
# ファイルを作成
touch testfile
# ステージングする
git add -A
# コミット
git commit -m "Add testfile"
- プッシュする
※結構前に
master
->main
に変わっているので注意
git push origin main
$ git push origin main
Username for 'http://gitlab.example.com': root
Password for 'http://root@gitlab.example.com':
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 279 bytes | 279.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To http://gitlab.example.com/gitlab-instance-e29b5099/test-project.git
e2ae154..f9ebfe5 main -> main
rootのパスワードを変更する
※ root
のパスワードになるので強力な文字列にしておくこと。
パスワードはランダム文字列で生成: https://www.luft.co.jp/cgi/randam.php
パスワードが変更完了したらログアウトされる。
- 変更したパスワードでログインできることを確認する。
補足: rootのパスワードを忘れた場合
docker compose exec gitlab cat /etc/gitlab/initial_root_password
を実行した際に、下記のようなメッセージが出ているので、このリンクに従ってリセットすれば良い。
If the password shown here doesn’t work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
確認: コンテナを削除してもデータが保持されているか
- ~/gitlab-docker に compose.ymlがあるので移動する。
cd ~/gitlab-docker
- コンテナを終了させる。
docker compose down
$ docker compose down
[+] Running 2/2
✔ Container gitlab-docker-gitlab-1 Removed 11.2s
✔ Network gitlab-docker_default Removed
- コンテナを起動する
docker compose up -d
- ログインする ※できていればOK!
参考
- GitLab Docker images | GitLab
https://docs.gitlab.com/ee/install/docker.html
おわりに
昔構築したときはけっこう大変だったけど、Dockerだとかなり楽に構築できる…。
業務で使用しているのものが既にパッケージ更新できない状態になっているので、(まあ社内にあるからいいのだけれども)
これを機にDockerの方にするのも良いかも。
アップグレード手順とか移行手順とかも調べておこうかなー。