【來自】:https://blog.csdn.net/xu12387/article/details/93050196
構建svn容器
docker run --privileged=true --restart always --name svn-server -d -v /home/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server
命令解析:
--privileged=true 授予容器管理員權限,預防創建svn創庫時提示權限不足
--restart always 設置容器隨宿主機開機自啓
--name svn-server 設置容器name爲svn-server,可自定義
-d 指定這個容器後臺運行
-v /home/svn:/var/opt/svn 掛載宿主目錄到容器目錄
進入容器
docker exec -it svn-server /bin/sh
創建svn庫
svnadmin create demo
創建成功後生成demo目錄,進入該目錄下的conf配置文件夾。有以下幾個文件authz, passwd, svnserve.conf
authz 是權限控制,可以設置哪些用戶可以訪問哪些目錄,
passwd是設置用戶和密碼的
svnserve是設置svn相關的操作
1. 配置passwd文件
vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret-
nfz = 123456
2. 配置authz
vi authz 這裏有兩種配置方式
第一種,以用戶組的方式配置,一個組下可以有多個用戶,例如:
[groups]
admin = nfz,lisi
[/]
@amdin = rw
[repo:/]
這裏的意思就是admin這個組下存在zhangsan,lisi兩個賬戶,[/]表示根目錄,@admin表示給組設置根所有倉庫的rw(讀寫)權限,給組設置權限必須用@符號 ,[/] 代表所有倉庫, [repo:/] 代表用戶在repo 倉庫的所有目錄有相應權限,這裏根據自己需求設計。
第二種,直接給用戶設置權限
[/]
nfz= rw
3. 編輯svnserve,找到 [general] 節點,加入以下內容
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /var/opt/demo/svn
退出容器,重啓容器
exit
docker restart svn-server