DiskStation DSM 7.xにSVNサーバーを構築する(Docker使用)
前書き
Synology DiskStationで使用されるOS、DiskStation Manager(DSM)6.2のサポートが2024/10/1に終了します。
よってDSM7.x系へのアップデートを実施することとなりますが、DSM7.xにはSVN Serverパッケージを引き継ぐことができず、またSynologyよりDSM7.xに対応したSVN Serverパッケージは2024/1/17現在提供されていないため、SVNサーバーをDSM7.xでも継続して運用したい場合は自力でSVNサーバーを構築する必要があります。
この記事では、Dockerを使用した方法を説明します。
今までDockerを使用した経験がなくても分かるようにしています。
私もDockerを使用するのは初めてです。
(Docker=仮想環境マネージャー
コンテナ=仮想環境
イメージ=設計図と認識しておけばこの記事内では十分です)
検証環境
機種: Synology DiskStation DS120j
バージョン: DSM 7.2.1-69057 Update 3
手順
1. パッケージ センターからContainer Managerをインストール。
(注:DSM7.2以前はDockerという名前のようです)
インストールが完了したら、Container Managerを開き、レジストリタブを表示。右上の検索ボックスで「svn」と入力して検索し、garethflowers/svn-serverを選択し左上のダウンロードボタンをクリックします。
タグの選択ウィンドウが出ますがデフォルトのlatestのままでいいです。
適用ボタンをクリックしてください。
イメージタブに自動で切り替わり、ダウンロードが始まります。
たまにダウンロードに失敗しますが、そのときは時間を置いてから再度やり直してください。
ダウンロードが完了したらgarethflowers/svn-serverを選択し実行ボタンをクリックします。
コンテナの作成ウィンドウが表示されます。
全般設定では、以下の項目を設定します。
コンテナ名: お好みの名前
自動再起動を有効にする: オン
設定したら次へをクリック。
詳細設定では、以下の項目を設定します。
ポート設定/ローカルポート(左側の欄): 3690
ボリューム設定
+フォルダの追加ボタンからSVNサーバーで使用する共有フォルダを選択。
右側の空欄に「/var/opt/svn」を入力。
設定したら次へをクリック。
要約が表示されるので、ウィザード終了後、このコンテナを実行にチェックを入れ完了をクリックします。
以上で完了です!共有フォルダにDSM7.x以前に使用していたリポジトリが残っていれば継続して使用できるため、新たに作成し直す必要はありません。
接続する
SVNサーバーが正しく動作しているか確認するため、一度接続してみます。
今回はTortoiseSVNを使用します。
適当な場所でCheckoutを行います。
URL of repository: svn://(DiskStationの名前またはIPアドレス)/リポジトリ名
リビジョンが取得されます。
(リポジトリでユーザー名とパスワードを使用している場合は認証ウィンドウが表示されます)
付録: リポジトリを作成する
Docker上で動作するSVNサーバーにリポジトリを追加するには方法がいくつかあります。
端末から作成
Container Managerのコンテナタブで、作成したSVNサーバーコンテナを選択し、端末を開くをクリックします。
端末ウィンドウが表示されるので、作成ボタンの右にある▼をクリックし、コマンドで実行をクリック。
「sh」と入力してOKをクリックします。
shタブに切り替えると、「/var/opt/svn # 」が表示されます。
「svnadmin create (お好みのリポジトリの名前)」を入力して実行します。
実行しても何も表示されませんが、File Stationで共有フォルダを確認するとリポジトリが作成されています。
TortoiseSVNで作成
エクスプローラーで\\(DiskStation名)\(SVN用共有フォルダ)を開き、空のフォルダを作成します。
作成したフォルダ内で右クリックしてコンテキストメニューを開き、TortoiseSVN→Create repository hereを選択します。
リポジトリの作成が完了したウィンドウが表示されます。
Create folder structureをクリックするとフォルダ構造を自動で作成してくれます。
(注: ウィンドウ上部に表示されているfile://で始まるアドレスはインターネットから接続したときには使用できないので、svn://(DiskStationの名前)/(リポジトリ名)に読み替えてください。)
この記事が気に入ったらサポートをしてみませんか?