概要
業務上の都合により社内にGit環境を構築したい状況になっておりまして、今回はイントラ内にGitLab環境を構築手順を整理しました。
インストールに多少時間は掛かるものの手順自体は簡単でした。が、いくつか躓いた所がありましたので、その辺も含めて紹介させていただければと思います。
なお、本記事は私本人がセットアップした手順を記載する物であり、正確性を保証するものではございません。本記事を参考にインストールされる場合は、自己責任でお願いします。
ゴール

大体こんなイメージです。
如何に素早く、ホストを汚さずに、不要になったらサクっと無くす事ができるかが重要です。
GitLab
docker
Ubuntu Desktop 24.04
VMWare Workstation
Windows Server
ちなみに、土台となるWindows ServerとVMWare Workstationはすでに社内にある環境で、今回の説明ではスキップさせていただきます。
Ubuntu Desktop 24.04のインストール
特に問題ないだろうと思っていましたが、結構詰まるポイントがあったので説明します。
インストーラーは公式サイトからダウンロード。特にデスクトップ環境が必要だったわけではないのですが、最初から日本語環境で進められるのでデスクトップ版にしました。
公式サイト
Desktop imageで64bit版をダウンロード。3GBちょっとです。

ここからVMWareの新しい仮想マシンの作成でインストーラーのisoファイルを選択して進めると思いますが、ここは一旦、「後でOSをインストール(S)」を選択します。
スペックは、メモリやCPUコア数少ないと時間が掛かって応答なし?になってしまう印象があったので、メモリ4G、CPUコア数8で開始しました。
ネットワークは環境に合わせばよいのですが、外部からブラウザ等でアクセスする為、ホストとは別のIPアドレスを割り当てる為にブリッジネットワークにしています。ホストと同じアドレスで良ければ、NATでも良いと思います。その他はデフォルトのままでOKです。

この状態で一度仮想マシンの作成を行うと、マシンが起動しBIOSメッセージで「Operationg System not found」で止まります。当然ですね、何もOSは無い状態です。
そこで、一旦パワーオフにして仮想マシンの設定画面を開き、オプションタブ > 詳細 > 「BIOSではなく EFIで起動(B)」にチェックを入れます。これです、BIOSではなくUEFIで起動しないと、インストールが進みません。
以前、古いWindowsノートPCにUbuntuを入れた際も、BIOSをUEFIに変更しないとインストールできなかったのですが、仮想環境もそれと同じと言う事のようです。これをやっていないと進めないと思いますので、このUEFIで起動する、と言う所が最大の躓きポイントに思います。
再度パワーONにしてインストールを進めます。大体30分位は掛かったと思います。
インストールのオプションで困る事は無いと思いますが、推奨するプロプライエタリなソフトウェアは、グラフィックやメディア関係なのでインストールしませんでした。通常のデスクトップPCとして使用するなら、あった方が良いかも知れませんね。
Ubuntuのセットアップ
Ubuntuが起動しましたら、初期セットアップなどしないといけないです。人によって色々だと思いますが、僕は以下のセットアップを行っています。
1.パッケージの最新化
$ sudo apt update
$ sudo apt upgrade
$ sudo apt autoremove
2.フォルダの英名化
$ LANG=C xdg-user-dirs-gtk-update
「Don’t ask me this again」にチェックを入れてUpdate Names。
3.日本語環境(インストール時に指定)
$ localectl status
$ sudo apt install language-pack-ja-base language-pack-ja
$ sudo localctl set-locale LANG=ja_JP.UTF-8
最初の確認コマンドで「System Locale: LANG=en_US.UTF-8」が返ってきていれば、日本語設定できているのでインストール等は不要です。
Desktop版はインストール時に言語設定するので、大体不要だと思います。
4.タイムゾーン設定(インストール時に指定)
$ timedatectl status
$ sudo timedatectl set-timezone ‘Asia/Tokyo’
タイムゾーンも同様です。Desktop版はインストール時に「Asia/Tokyo」を選んでいるはずです。
5.ファイアウォールの設定
$ sudo ufw enable
$ sudo ufw default deny
$ sudo ufw allow xx/tcp
SSHやブラウザアクセスなど、必要なポートを開けてください。
6.SSH
$ sudo systemctl status ssh
$ sudo apt install openssh-server
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bkup
$ sudo vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication yes
PermitEmptyPasswords no
$ systemctl restart ssh
最初にstatus確認をすると、恐らくサービスが見つからないエラーが表示されると思います。openssh-server入れて、設定変更してサービスを起動します。
7.自動スリープ無効
$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
デスクトップ版なので、UIの設定からでもできると思います。
8.docker、composeのインストール
$ sudo apt install ca-certificates curl gnupg lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo gpasswd -a $(whoami) docker
$ getent group docker
$ sudo chgrp docker /var/run/docker.sock
$ docker version
$ docker compose version
$ newgrp docker
dockerのインストールと、現在のユーザーをdockerグループに入れる設定です。
これで一通りセットアップは完了です。次は、GitLabをdockerで動かす設定です。
GitLabをdocker composeで動かす設定
まず規定ディレクトリを作ります。僕はそのまんま「gitlab」と言うディレクトリを作成しました。その中に入れるcompose.yamlは以下の通りです。
/home/[your user name]/gitlab/compose.yaml
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://xxx.xxx.xxx.xxx:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
nginx['listen_port'] = 80
ports:
- 8929:80
- 2224:22
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
「deocker compose up -d」でコンテナが起動されます。
volumsで指定されている、ホスト側にバインドされるconfig、logs、data等は、何も準備しなくても問題ありません。
設定の通りで、社内ネットワークから当該PC(Ubuntu Desktop)アドレスの8929ポートにブラウザでアクセスすると、コンテナ内の80ポートにフォワードされ、GitLabページが開きます。

初回起動時、5分程度時間が掛かりましたが、無事起動しました!
VMにUbnut入れる所が一番手間取りましたね。後は簡単でした。それではまた!