Docker搭建Svn Server
文章目录
基础环境
系统版本: 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测试是否输入正确,最后保存配置
登陆后我们可以在“Repositories”下“add”,添加项目目录;
在”Users”下添加用户;
在“Access-Paths”下关联对应项目的用户,并分配相关读写权限。