1.开发者前言
这篇博客我根据自己经验和搜索总结而来的,不足之处还希望大家谅解。我写这篇文章的原因是,我在网上看了很多资料,但是感觉很多都是不很全。并且一个很不好的现象是很多都是复制别人博客,缺的很多,希望我的这篇博客对大家有一点点帮助,谢谢。
2.docker中svn搭建
2.1. 搭建前准备
1)搭建docker
2)配置相关docker环境
2.2. 安装svn
步骤1:安装并启动容器
命令:docker run --restart always --name svn -d -v /data/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server
参数解析:
/data/svn为宿主机的文件目录,/var/opt/svn为容器内的文件目录
--restart always命令可以实现容器在宿主机开机时自启动
-p 3690:3690表示将宿主机的3690端口映射到容器的3690端口,此端口为svn服务的默认端口,可以根据需要自行修改
注:这里我们安装了svn,在linux中我们需要开启3690端口,和把对应对口加入到安装组,这样我们才能正确的在浏览器里面进行访问。
附:端口和防火墙开启方式
1)查看端口是否开启
firewall-cmd --list-all
2)开启端口
firewall-cmd --add-port=80/tcp --permanent
3)重启防火墙
firewall-cmd --reload
步骤2:创建svn仓库和账户
1)进入容器
docker exec -it svn /bin/sh
2)创建名称和svn仓库
svnadmin create svn
配置成功后在仓库下面会显示如下文件
1)资源仓库配置,修改svnserve.conf
anon-access = none # 匿名用户不可读写,也可设置为只读 read
auth-access = write # 授权用户可写
password-db = passwd # 密码文件路径,相对于当前目录
authz-db = authz # 访问控制文件
realm = /var/opt/svn/svn # 认证命名空间,会在认证提示界面显示,并作为凭证缓存的关键字,可以写仓库名称比如svn
2)配置账号与密码,修改 passwd文件,格式为“账号 = 密码” 相关命令:vi passwd
1)配置账户权限,修改 authz文件 相关命令:vi authz
owner = admin
test1 = lixi
dev = xietao,zhangsan,wangwu
[/]
admin = rw
[svn:/]
@owner = rw
@test1 = r
@dev = rw
参数解释:
在这里,我配置了三个用户组owner、test1和dev组,这三个组后面会用到来测试svn相关的权限验证。安装完成后,下面会做对应的验证操作。
主要验证样例为:
----用户组owner用查看和提交数据和读数据的权限,里面的用户有admin
----用户组test1组用户只有读的权限没有修改数据的权限,里面的用户有lixi
----用户组dev有读和写的权限,里面的用户有xietao/zhansan/wangwu
1)步骤3:拉取svn
打开浏览器,输入svn://xxxxxx:3690/svn,其中xxxx为ip地址。
注:服务器安装完成后,你自己需要安装自己的一个客户端工具TotoiseSVN
如下输入上面地址后,点击打开客户端
选择打开后就会出现下图的界面,输入用户名和密码就可以登录进去了,而对应的用户名和密码在上面已经做了介绍。
我为了演示上面提到的案例,就是不同组内成员的权限问题,我使用admin用户登录进去创建了两个文件夹
1.1. 组内权限验证
案例:
----用户组owner用查看和提交数据和读数据的权限,里面的用户有admin
----用户组test1组用户只有读的权限没有修改数据的权限,里面的用户有lixi
----用户组dev有读和写的权限,里面的用户有xietao/zhansan/wangwu
登录test1组内用户,上传或者修改文件
登录成功后,上传文件,提示权限不足
而登录其他用户上传文件时,只要有rw权限的就可以实现文件上传和修改
结束语:上面的svn安装已经模拟现代企业中团队开发中项目管理进行了搭建,剩下关于svn的相关操作大家可以网上去找相关资料进行学习和总结了,感谢大家的捧场。