今回も備忘録です。
Docker 環境で使用する Gitリポジトリ を用意するにあたり、使用頻度の低かった Synologu NAS 上に Gitサーバーを構築してみることにしました。
環境について
SSH 認証編 と変わりません。
使用する環境は下記のとおりです。
エディション | Windows 11 Pro |
バージョン | 23H2 |
OSビルド | 22631.4169 |
エクスペリエンス | Windows Feature Experience Pack 1000.22700.1034.0 |
製品 | DiskStation DS420J |
DSM バージョン | DSM 7.2.1-69057 Update 5 |
uname -a | Linux DS420J 4.4.302+ #69057 SMP Fri Jan 12 17:01:55 CST 2024 aarch64 GNU/Linux synology_rtd1296_ds420j |
事前にインストールしたソフトウェア
git for windows
サイトのトップページに表示されている「download」ボタンをクリックし、「Git-2.46.2-64-bit.exe」をダウンロードしました。
同ファイルをインストールしましたが、基本的に「既定の設定」のままインストールを進めました。
参考にした記事
Synologyナレッジセンター Git Server
NASキット Synology DiskStation DS220jで遊ぶ その13: Gitサーバにする
Git サーバーの構築とリポジトリの準備は、この二つのサイトを参照すれば 無難に進められると思います。
gitリポジトリのクローン手順
前述のサイトでは VSCode からクローンする手順が記載されていました。
- VSCode を起動する。
- 左端の「ソース管理」アイコンをクリックする。
- ソース管理ペイン内の「リポジトリのクローン」ボタンをクリックする。
- リポジトリへのURLを入力する。
例. ssh://git-server/git/git_test.git - リポジトリのクローンフォルダを作成するフォルダを選択する。
(選択したフォルダの直下に、リポジトリファイルと同名のフォルダが作成される)
ただ、「クローンフォルダの名前」を「リポジトリファイルと異なる名前」にしたいときは、別の方法でクローンする必要があります。
任意のフォルダへクローンする方法
git clone
コマンドを使えば、好きな名前のフォルダへクローンすることができます。
- 「Git CMD」を起動する。
- リポジトリフォルダを作成するベースフォルダへ移動する。
例. "C:\Docker" - リポジトリフォルダを作成し、そこへ移動する。
例. "sample1" - git colne コマンドを実行して「カレントフォルダ」へリポジトリをクローンする。
C:\Docker>mkdir sample1
C:\Docker>cd sample1
C:\Docker\sample1>git clone ssh://git-server/git/git_test.git .
Cloning into '.'...
warning: You appear to have cloned an empty repository.
C:\Docker\sample1>
-
git clone
コマンドに指定したURLの「git-server」は、SSH の CONFIG ファイル(.ssh フォルダ下のファイル)に記述したホスト定義名です。 -
git clone
コマンドに指定したURLの「git」は、Synology NAS 上で作成した「リポジトリフォルダを指すシンボリックリンク」です。
VSCode からの操作
git config へのユーザー名とメールアドレスの追加
リポジトリへアクセス際に使用する既定の「ユーザー名」と「メールアドレス」を、git global 設定に追加しておきます。
git config --global user.name "ユーザー名"
git config --global user.email "メールアドレス"
Visual Studio Code からクローンフォルダを開く
- 「フォルダーを開く」メニューから、先ほどのクローンフォルダ(C:\Docker\sample1)を開きます。
- 信頼するかどうかを問い合わせてくるので、「はい、作成者を信頼します」をクリックします。
- 起動後、ファイルエクスプローラー画面に「クローンしたフォルダ名」が表示され、ウィンドウ左下に「master」と表示されていたら成功です。
ファイルのコミット、Gitサーバーへのプッシュ
「参考にした記事」で示したサイトの内容を確認してください。
作成したファイルのコミット
Gitサーバーにプッシュ
トラブルシュート
Git Serverのアクセスを許可するユーザーリストが空になってしまう問題と対応方法
全く同じ現象が発生していましたが、「SYNO.Git.lib」を手動修正することで解消されました。
記事では「SYNO.SDS.GIT.Instance」部分を削除すれば良いとありましたが、現在の私の環境では「“appPriv”: “SYNO.SDS.GIT.Instance“,」という記述自体を削除しています。
{"SYNO.Git.lib": {"allowUser": ["admin.local", "admin.domain", "admin.ldap"], "authLevel": 1, "lib": "/var/packages/Git/target/webapi/SYNO.Git.so", "maxVersion": 1, "methods": {"1": [{"enum_user": {"grantable": true}}, {"apply": {"grantable": true}}]}, "minVersion": 1, "priority": 0, "priorityAdj": 0}} |
あとがき
非常に役立つ記事を公開してくれている方々に感謝です。
時が過ぎたら記憶もあやふやになってくるので、簡単なことでも備忘録的な記録はやはり必要ですね。