こちらの記事を参考にしました。
https://e-penguiner.com/gitlab-with-docker-onpremise/#google_vignette
今回はローカルのみでの利用を想定しているので、暗号化はしません。
前提条件として、WSL2の有効化とDocker Desktopのインストールが必要です。
そして作業はWindowsストアアプリからLinuxをインストールして、Linux上に構築します。
GitLabサーバの立ち上げ
適当なフォルダを作成し、そのなかにdocker-cmpose.ymlファイルを作成。
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ee:latest'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com:8080'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
nginx['listen_port'] = 80
ports:
- '8080:80'
- '2222:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
これの内容を説明すると、
Docker作成時に、GitLabの最新バージョンを使用します。
※念のため言うと、実際業務で使用する場合は必ず特定のバージョンを指定するらしい。今回のように常に最新バージョンはアウト。
ポート番号はホスト側8080とコンテナ側80、ホスト側2222とコンテナ側22が接続されます。
80はhttp、22はsshのデフォルトポート番号ですね。
別の番号を使用する場合は設定変更が必要です。
volumesにコンテナのディレクトリにホストのディレクトリをマウントさせます。
この設定では、
コンテナ /etc/gitlab – ホスト /srv/gitlab/config
コンテナ /var/log/gitlab – ホスト /srv/gitlab/logs
コンテナ /var/opt/gitlab – ホスト /srv/gitlab/data
つまりコンテナ側で作成したファイルが、ホストの上のディレクトリに出力されるわけですね。
これでコンテナを立ち上げます。
docker-compose up -d
立ち上がり完了まで待ちます。(結構時間かかります)
docker-compose ps
これで、statusがhealthyと表示されれば立ち上がり完了です。
ブラウザでhttp://自分のIPアドレス:8080にアクセスしてGitLabの画面が表示されればOKです。
rootパスワードの設定
Linuxのコンソールで以下のコマンドを入力します。
docker-compose exec gitlab gitlab-rails console -e production
Rubyのコンソールに切り替わるので、以下のコマンドを入力します。
user = User.where(id: 1).first
user.password = '新しいパスワード'
user.password_confirmation = '新しいパスワード'
user.save!
exit
パスワードは複雑な文字列で入力しないとエラーになります。
正常に入力完了したらログイン画面からrootでログインできることを確認して、
ログイン出来たらOK。