1、前提
- 安装好
docker
:详见这篇文章 - 安装好
docker-compose
:详见这篇文章 - 拉取镜像:
docker pull garethflowers/svn-server
2、安装SVN
3、创建版本库
- 进入到容器中:
docker exec -it svn-server /bin/sh
- 创建名为
chenbinhao
的版本库:svnadmin create chenbinhao
- 进入仓库,可以看到有如下几个文件:
![在这里插入图片描述](https://img-blog.csdnimg.cn/6802fd2e04bb4027bc458aed3b352667.png)
- 进入到
conf
文件夹,修改svnserve.conf
passwd
authz
文件 - 修改配置文件:
vi svnserve.conf
,内容如下:anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = This is chenbinhao's SVN
- 修改用户密码的配置文件:
vi passwd
,内容如下,#
表示注释[users]
admin = 123456
chenbinhao = 123456
user = 123456
- 修改授权文件:
vi authz
,内容如下,#
表示注释[groups]
administrator = admin,chenbinhao
[/]
@administrator = rw
[chenbinhao:/]
user = r
- 配置完即可退出容器,重启容器,刚才配置的内容才会生效:
docker-compose restart
4、关于授权文件authz的配置说明
[<版本库>:/项目/目录]
@<用户组名> = 权限
@<用户名> = 权限
其中,[]内容有多种写法:
- [/],表示根目录及其以下的路径,根目录是svn启动时指定好的;
上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).
[/]就是表示对全部版本设置的权限
- [test:/],表示对版本库test设置权限
- [test:/svnadmin],表示对版本库test中的svnadmin项目设置权限
- [test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限
权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户
权限分为:r,w,rw和null,null空表示没有任何权限
authz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。