基础环境

系统版本: centos-7.6(linux)

环境依赖: Docker

系统要求:

  • 关闭selinux
  • 防火墙放行80、3690端口(或者关闭防火墙)
  • 服务器的80和3690端口没有被占用

拉取镜像

推荐elleflorio/svn-server的镜像,包含了http和webui(svnadmin)

docker pull elleflorio/svn-server

github地址: https://github.com/elleFlorio/svn-docker

启动

docker run --name svn-server -d --restart=always -v /home/docker/svn:/home/svn/ -p 80:80 -p 3690:3690 elleflorio/svn-server

  • 把容器中的svn目录挂载到物理机的/home/docker/svn

创建仓库

# 进入镜像
docker exec -it svn-server /bin/sh

# 创建仓库名为test_svn的仓库
svnadmin create /home/svn/test_svn

# 在容器中需要修改一下这个目录的权限,因为默认是root创建的仓库,在window端没有权限访问,否则会报错:can't open file db/txn-current-lock:permission
chmod 777 -R /home/svn/test_svn/db

修改权限控制

镜像默认没有对权限进行控制,修改一下配置文件

vi /etc/apache2/conf.d/dav_svn.conf
<Location /svn>
     DAV svn
     SVNParentPath /home/svn
     SVNListParentPath On
     AuthType Basic
     AuthName "Subversion Repository"
     AuthUserFile /home/svn/passwd.conf
     AuthzSVNAccessFile /home/svn/auth.conf 
     Require valid-user
</Location> 

然后重启svn-server容器

创建第一个用户

在物理机上执行

docker exec -t svn-server htpasswd -b /home/svn/passwd.conf <username> <password>
# Adding password for user <username>

利用webui(svnadmin)配置权限

the image provides a graphical ui using the SVNADMIN interface via http://svnserver-ip/svnadmin. You’ll be prompted with a setup page, remember to test every step on the page then save the configuration.

浏览器地址输入http://ip/svnadmin出现配置界面,输入下图中配置信息,输入每个配置信息可以点击旁边的Test测试是否输入正确,最后保存配置

svnadmin

登陆后我们可以在“Repositories”下“add”,添加项目目录;

在”Users”下添加用户;

在“Access-Paths”下关联对应项目的用户,并分配相关读写权限。