Dockerコンテナを用いてSVNサーバを起動し、WindowsフォルダをマウントしてユーザーIDとパスワードを設定する方法
CI/CDの環境構築などを試す際、手軽にリポジトリを立ち上げたくなります。
Windows WSL環境上のDockerで、Docker Hubからコンテナを入手して立ち上げると「立ち上げて遊んでポイ」が容易なのでいつもやっています、、、が、たまにしかやらないので、手順忘れがち。
ChatGPTさんに作文してもらった内容を備忘のため記載しておきます。
環境:
・Windows 10(WSL設定済み)
・Docker (WSL上で動作)
以下の手順で、Dockerコンテナを用いてSVNサーバを起動し、ユーザーIDとパスワードを設定します。また、WindowsのフォルダをDockerコンテナにマウントします。
※ここではサーバ―名を「suna-svn-server」、リポジトリ名を「new-repo」としています。
1. Dockerコンテナを起動する
Dockerコンテナgarethflowers/svn-server
を起動します。また、Windowsのフォルダ(ここではC:\svn-server
)をコンテナの/var/opt/svn
ディレクトリにマウントします。
docker run -d --name suna-svn-server -v /mnt/c/svn-server:/var/opt/svn -p 3690:3690 garethflowers/svn-server
2. 新しいリポジトリを作成する
新しいリポジトリnew-repoを作成します。
docker exec -it suna-svn-server svnadmin create /var/opt/svn/new-repo
3. Dockerコンテナのシェルを開く
docker exec -it suna-svn-server sh
これでDockerコンテナのシェルが開きます。
4. passwdファイルを作成(または編集)する
リポジトリのconfディレクトリに移動します。
cd /var/opt/svn/new-repo/conf
viを使ってpasswdファイルを作成(または編集)します。
vi passwd
iを押して挿入モードに入ります。これでファイルに入力できるようになります。
以下の内容をファイルに入力します:
[users]
username = password
usernameとpasswordは使用したいユーザー名とパスワードに置き換えてください。
ESCを押して挿入モードを終了します。
:wqを入力しEnterを押してファイルを保存してviを終了します。
5. svnserve.confファイルを編集する
同様に、svnserve.confファイルを編集します。
vi svnserve.conf
再度viのコマンドを使用して、以下の行をコメントアウト解除(または存在しない場合は追加)します:
password-db = passwd
これも保存してviを終了します。
※匿名アクセス用に「anon-access = read」「auth-access = write」を追加してもよいですが、あまりお勧めしません。
6. Dockerコンテナのシェルを終了する
exitを入力してEnterを押すと、Dockerコンテナのシェルを終了できます。
これで、new-repoという新しいリポジトリが作成され、ユーザーが設定されました。
Dockerコンテナ「suna-svn-server」を起動すれば、TortoiseSVNからはsvn://localhost:3690/new-repoのURLでこのリポジトリにアクセスできます。