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

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

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

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

GitLab

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

Docker

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

samba

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

Q&A

0回答

1770閲覧

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

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クリップ

投稿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

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

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

確認したこと

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問