質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
NFS

NFS (Network File System) とは、ネットワークを介して外部ストレージにアクセスするための分散ファイルシステムです。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

samba

Samba(サンバ)とは、UNIX系OSにおいてSMBを用いたサービスを提供するためのソフトウェアです。ネットワークを通じて、ファイル共有及びプリンタ共有などのサービスをWindowsマシンへと提供します。ライセンス体系GPLに基づきフリーソフトウェアとして公開されています。

受付中

WSL2とDocker DesktopのみでネットワークディレクトリをマウントしてそれをGitlabコンテナから利用したい。

tom
tom

総合スコア8

NFS

NFS (Network File System) とは、ネットワークを介して外部ストレージにアクセスするための分散ファイルシステムです。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

samba

Samba(サンバ)とは、UNIX系OSにおいてSMBを用いたサービスを提供するためのソフトウェアです。ネットワークを通じて、ファイル共有及びプリンタ共有などのサービスをWindowsマシンへと提供します。ライセンス体系GPLに基づきフリーソフトウェアとして公開されています。

0回答

0リアクション

0クリップ

767閲覧

投稿2022/03/13 07:31

背景

※ 私は日本人ですが、質問内容を明確かつ、端的にするため、箇条書き風に書いております。
※ 読みにくかったら申し訳ないです。
※ トンチンカンな質問をしていたらすみません。

GitLabのリポジトリをネットワーク上のストレージに置きたいです。
windowsでGitLabを使う際は、Dockerもしくは、Linux系OSが必須です。
Windows上でGitLabを利用するならば、
WSL2>Ubuntu>Gitlab or WSL2>Ubuntu>Docker>Gitlab とするより、
WSL2>Docker Desktop>Gitlab としたいと考えました。
WSL2>Docker Desktop>Gitlab で、リポジトリをネットワークディレクトリ上に置くにはどうしたらよいでしょうか。

前提

  • WSL2を利用すること。
  • Docker DesktopでGitlabを利用すること。
  • (WSL2 > Docker-Desktok > Gitlab(コンテナ)というような構成)
  • ネットワークディレクトリのプロトコル(?)は、NFS or SMB

実現したいこと

  • Gitlabの情報 ( /etc/gitlab/と/var/log/gitlab、/var/opt/gitlab ) をネットワークディレクトリに置きたい。

実現環境

利用した環境

  • Windows10 Home
  • WSL2
  • Docker Desktop (Docker version 20.10.12, build e91ed57)
  • Gitlab-ee
  • Windowsで利用できるNAS ( 実験環境では、sambaを利用。NASは、NFSをサポートしてます。 )

利用したい環境

  • Windows10
  • Gitlab
  • WSL2
  • Docker Desktop

やったこと

下記の手順でマウントまではでき、コンテナを作成することはできました。
しかし、エラーが出て止まってしまいました。権限の関係上だとは思うのですが、、、。

  • $NetworkIP:ネットワークディレクトリのあるIPアドレス。(例:192.168.56.1)
  • $sharedir:マウント予定のしているディレクトリ名。(例:share)
  1. WSL2のインストール
  2. Docker Desktopのインストール
  3. コマンドプロンプトで wsl -d docker-desktopを実行し、Docker Desktop内に移動
  4. mkdir -p /mnt/host/uC/$NetworkIP/$sharedir
  5. Docker Desktop内でmount -t drvfs "\\$NetworkIP\$sharedir" /mnt/host/uC/$NetworkIP/$sharedir
  6. ネットワークディレクトリをWindowsでネットワークドライブを設定(今回はS:\ドライブに指定)
  7. コマンドプロンプトで以下のコマンドを実行

cmd

docker run -it -p 80:80 -p 443:443 -p 22:22 ^ --name gitlab --hostname gitlab.example.com ^ --mount type=bind,source=/S/gitlab/config,target=/etc/gitlab ^ --mount type=bind,source=/S/gitlab/data,target=/var/opt/gitlab ^ --mount type=bind,source=/S/gitlab/logs,target=/var/log/gitlab ^ --shm-size 256m ^ gitlab/gitlab-ee

この後、コンテナが立ち上がり、しばらくすると終了します。

確認したこと

  • Docker DesktopのボリュームのみでGitlabを立ち上げた場合は、安定稼働します。
  • /S/gitlab/config(/etc/gitlab) にマウントしたディレクトリには、ファイルを書き込むことはできてました。
  • /S/gitlab/data/.ssh(/var/opt/gitlab/.ssh) にファイルを作ろうとしたところ、コンテナが停止したようです。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

NFS

NFS (Network File System) とは、ネットワークを介して外部ストレージにアクセスするための分散ファイルシステムです。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

samba

Samba(サンバ)とは、UNIX系OSにおいてSMBを用いたサービスを提供するためのソフトウェアです。ネットワークを通じて、ファイル共有及びプリンタ共有などのサービスをWindowsマシンへと提供します。ライセンス体系GPLに基づきフリーソフトウェアとして公開されています。