上次安裝了Gitlab,可以參考這篇(群暉Nas - Docker(ContainerManager)上安裝GitLab),今天來搞SVN服務器,廢話不多說。
下載鏡像
還是先下載鏡像(garethflowers/svn-server),下載不了看上一篇Gitlab的文章。
下載完畢后,運行。
運行安裝
容器名字好了后,下一步
這里我創建了一個共享文件夾專門放SVN庫,對應映射路徑是/var/opt/svn
端口號自定義。
然后下一步,完成。
創建庫
結束后可以在運行的實例上右鍵鼠標點擊打開終端機。
我們運行命令,點擊新增,通過命令啟動
然后在輸入框里輸入
svnadmin create /var/opt/svn/newgame
這里newgame就是庫的名字。然后點擊這個svnadmin按鈕。
這里只有光標閃,看不到提示。
當你看到文件夾有數據了就創建成功了。
SVN項目配置
通常可以在每個庫里面有個conf目錄,里面可以配置用戶等。
這里我們先說通常對于庫如何設置,后面有針對多個庫共享的方法。
svnserver.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
anon-access是匿名用戶,我們不希望訪問
auth-access-登錄用戶我們希望write
password-db用戶的密碼文件路徑,通常是本目錄的passwd文件
authz-db詳細的庫設置。
全部庫采用統一設置
如果所有庫都要配置一次哪些人可以訪問有時不方便,特別是需要建立一個人可以訪問所有庫,其實也很簡單。
配置文件中我們可以輸入路徑
在上面創建庫完成的截圖中,我在庫的根目錄放了一個authz和passwd文件。
我統一在這里設置。讓所有庫都按照這個配置來決定用戶權限。
我們使用絕對地址來讀取相同文件就可以了。
password-db = /var/opt/svn/passwd
authz-db = /var/opt/svn/authz
SVN拉取項目
拉取地址為:
svn://192.168.3.18/newgame
關于authz的配置
authz通常可以配置組,每個組的訪問權限等。
下面是個示例:
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').[/]
@dqmj=rw[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
dqmj=thinbug,liutao# [/foo/bar]
# harry = rw
# &joe = r
# * =[decode:/]
@dqmj = rw
# * = r[newgame:/]
@dqmj = r
# * = r
我們看到dqmj是一個組名,包含了兩個用戶ID,
后面的[decode:/]和[newgame:/]是兩個庫,對應這兩個組的權限。
設置更詳細的目錄權限
如下:我們設定newgame里的這個路徑只有dqmj的可以提交,組group2的無權拉取訪問。
[newgame:/Project/DecodeUnity/Assets/ResAll/Scenes]
@dqmj = rw
@group2=
其他說明
SVN的authz和passwd修改后不用重啟,直接生效的。
這里沒有說http如何訪問svn的問題,這個鏡像本身不帶http,因為使用的人比較多就采用的這個鏡像。
后面有空了再補充文章。