0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitLabをWSL2 + Dockerで構築して、他のPCからアクセスしてみる

Last updated at Posted at 2025-03-12

何をしたの?

DockerのWSLディストロを外付けHDDに移動して、GitLabのDockerコンテナを構築、LAN内のPCからアクセスできるようにしました。

目次

1. はじめに

GitHubのIssueを有効活用する記事を読んでIssueを使いだし、「こういう個人的なのってGitHubに置いとくの恥ずかしいな……あと個人開発のプロジェクトとか、売り物にするの考えるなら人に見られないとこに置いときたいな」となって、GitLabを構築してみることにしました。

やってみたところ結構めんどくさいことが多いうえ、全部の流れを書いてくれてる記事が無かったので書きました。とりあえずこの記事をスタート地点に、もっといい構築方法とか、気になったことを突き詰めてもらえたらと思います。

2. やりたいこと

  1. GitLabをWSL2 + Docker Desktop上に構築する

  2. 外付けHDDとかにGitLabのデータを置いて、プロジェクトをたくさん貯められるようにする

  3. 作業PCじゃない別のPCに入れて作業することを想定して、別のPCからGitLabにアクセスできるようにする

3. docker-desktop ディストリビューションの引っ越し

まずはGitLabが外付けストレージ内にデータを置けるようにします。といっても、マウントとかじゃなくて、GitLabが入ったDockerごとそのまま引っ越すという力技です。

もうちょっと理解が進んだら、改めてマウントする方法でやってみたいなとは思っています(やれたらやる)。

3.1. WSLを止める

まずはDockerディストリビューションを停止します。

wsl -l -v

で、現在このPCに入ってるディストリビューションの一覧と状況が分かります。
僕の場合以下のように出ました。

  NAME              STATE           VERSION
* Ubuntu            Running         2
  docker-desktop    Running         2

docker-desktop-dataがある人もいるみたいですね(ver4.30.0で無くなったらしい)。
ちょっと僕の環境には無かったのですが、こちらの記事だとその話もしていたので、参照してみてください。

ともかく、これらのディストリビューションを停止します。

wsl --shutdown

Dockerもタスクトレイのアイコンを右クリして「Quit Docker Desktop」でシャットダウンできます。

さっきのwsl -l -vで起動状況を確認しておくとよいです。

3.2. WSLを持ち運び可能にする

wsl --exportというコマンドで、WSLを圧縮します。

WSLを置くためのフォルダを各自好きな場所に作ったあと、以下のコマンドを実行します。第2引数のパスは調整してください。

wsl --export docker-desktop \path\to\new\distro\docker-desktop.tar

.tarをつけないと何でもない何かが生成されてやり直しです(1敗)。

3.3. DockerをWSLから削除

wsl --unregister docker-desktop

wsl -l -vで削除確認もしてください。

3.4. 新しい場所でDockerをインポート

先ほど生成した.tarファイルを、各自作ってもらった場所でインポートします。

# wsl --import ディストロ名 インポート先 インポート元 --version 2
wsl --import docker-desktp \path\to\new\distro\ docker-desktop.tar --version 2

以上で引っ越し終わりです。wsl -l -vで、削除したdocker-desktopが生き返ってたら成功です。.tarは今後使う予定がなければ消して大丈夫です。

4. GitLabを構築する

4.1. WSLでdocker-compose用のフォルダを作る

docker-desktopじゃないほうのWSL2で、GitLab用のフォルダを作ります。
GitLabのデータを置くわけじゃないので安心してください。

mkdir gitlab && cd gitlab

4.2. docker-compose.ymlを作る

GitLabのDocker環境を構築するためにdocker-compose.ymlを作ります。
以下をコピペしてください。

services:
  gitlab:
    image: "gitlab/gitlab-ce:latest"
    container_name: gitlab
    restart: always
    hostname: "gitlab.local" # ホスト名(好みで変更可能)
    ports:
      - "0.0.0.0:80:80" # HTTP
      - "0.0.0.0:443:443" # HTTPS
      - "0.0.0.0:22:22" # SSH
    volumes:
      - "gitlab-config:/etc/gitlab"
      - "gitlab-logs:/var/log/gitlab"
      - "gitlab-data:/var/opt/gitlab"
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.local'  # アクセスURL(hostnameと合わせて変更)
        gitlab_rails['gitlab_shell_ssh_port'] = 22
        # 必要に応じて以下のコメントを外してメール設定などを行ってください
        # gitlab_rails['smtp_enable'] = true
        # gitlab_rails['smtp_address'] = "smtp.gmail.com"
        # gitlab_rails['smtp_port'] = 587
        # gitlab_rails['smtp_user_name'] = "my.email@gmail.com"
        # gitlab_rails['smtp_password'] = "my-password"
        # gitlab_rails['smtp_domain'] = "smtp.gmail.com"
        # gitlab_rails['smtp_authentication'] = "login"
        # gitlab_rails['smtp_enable_starttls_auto'] = true
        # gitlab_rails['smtp_tls'] = false
        # gitlab_rails['gitlab_email_from'] = 'my.email@gmail.com'
    shm_size: "256m" # GitLabの動作に必要なメモリサイズ

volumes:
  gitlab-config:
  gitlab-logs:
  gitlab-data:

hostnameとexternal_urlの値を変更する場合は、両方を同じ値に合わせてください。この値は後で他のPCからアクセスする際のホスト名になります。

Claude様が一晩で作ってくれたものなので「何でこうしてるんですか?」とは聞かないでください。僕もdocker-composeよくわからないです。僕の環境ではうまくいったのでそのまま使ってます。

4.3. コンテナ起動!

ここまでやったらコンテナ起動します

docker-compose up -d

GitLabは起動にそこそこ時間がかかります(5〜10分程度かかることもあるらしい)。アクセスできなくても焦らず待ちましょう。

ログ確認とか

docker-compose logs -f

コンテナ状況確認

docker ps -a

で、進捗を確認できます。docker-compose logs -fで「システムの初期化が完了しました」のようなメッセージが出たり、docker ps -aで全コンテナのSTATUSUpになれば準備完了です。

4.4. localhostにアクセス

GitLabが起動したら、http://localhostにアクセスします

4.5. ログイン!

rootユーザーで初期ログインします

  • ユーザー名: root
  • パスワード: 次のコマンドで確認できます(24時間経つと消えるのでお早めに)
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

初回ログイン後は、セキュリティのために必ずパスワードを変更してください。右上のユーザーアイコン > Preferences > Password からパスワードを変更できます。

ここまでやれたらとりあえずGitLabを使えるようになっていると思います。試しにGitHubで使ってた分のアカウントを登録したりして楽しみましょう。

5. 他のPCからアクセスできるようにする

ネットを通してとなると分からないですが、家の中のPC間だったら結構すぐできます。

5.1. ホストPCのIPアドレスの取得

まずはGitLabを動かしているPCのIPアドレスを取得します。
windows設定の「ネットワークとインターネット」>「イーサネット」の「IPv4アドレス」の箇所です

または、コマンドプロンプトで次のコマンドを実行しても確認できます

ipconfig

5.2. hostsに書き込む

IPアドレスが取得できたら、C:\Windows\System32\drivers\etc\hostsにIPアドレスを追記します(管理者権限が必要です)。
最後の行にIPアドレス gitlab.comと書きます。

192.168.1.xxx gitlab.local

IPアドレスは実際の値に、gitlab.localdocker-compose.ymlで設定したホスト名に合わせてください。

5.3. アクセスする側のPCにも書き込む

別のPCのhostsにも同じ内容を追記します。

5.4. アクセス!

別のPCでブラウザ開いてアクセスしてみましょう

6. お疲れ様でした

クソ疲れました。でもGitLab楽しいからヨシ!

GitHubに置いてあるリポジトリのインポートはこれ、逆にGitHubをGitLabデータのスペアや公開用に使うならこれとか読むといいと思います。

そのうちミニPC買ってGitLabホスティングして、24時間365日稼働させたいです。
あとGitHubをストレージ代わりにしつつ、NAS買って家の中でも冗長化したい……ついでにデカめの動画とかゲームとか保存したい……
VPN使えば外からもアクセスできるんでしたっけ?そういうのもやってみたい……。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?