「这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战」。
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
使用docker可以快速的在服务器中搭建一个svn服务.
1. 下载镜像
docker pull garethflowers/svn-server
2. 启动 svn 容器
创建容器挂载目录
mkdir -p /opt/docker/svn
执行启动命令
docker run –privileged=true –restart always –name svn -d -v /opt/docker/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server
1 | diff复制代码-v /opt/docker/svn:/var/opt/svn 挂载宿主目录到容器目录 |
执行 docker ps 可以看到 svn 正在运行 注意有防火墙要开放3690端口
3. 创建 svn 库
进入容器
docker exec -it svn /bin/sh
创建svn库
svnadmin create testropo
进入 conf 目录 有以下几个文件authz, passwd, svnserve.conf
配置passwd文件
vi passwd 进入文件
在[users]下增加了账户 test 密码为123456,注意#后面内容是注释掉的,不用管。且注意等号两边有要有空格
1 | ini复制代码[users] |
配置authz
这里有两种配置方式
第一种 以用户组的方式配置,一个组下可以有多个用户,例如
1 | ini复制代码[groups] |
[groups] 的意思就是admin这个组下存在test,aaa,bbb三个账户
[/]表示根目录,@admin表示给组设置根所有仓库的rw(读写)权限,给组设置权限必须用@符号,[/]代表所有仓库
[ropository:/] 代表用户在 testropo 仓库的所有目录有相应权限,这里根据自己需求设计
第二种 直接给用户设置权限
1 | ini复制代码[/] |
两种方式可以一起使用的,可以自己搭配,我是用的第一种
编辑 svnserve.conf,找到 [general] 节点,加入以下内容
1 | ini复制代码anon-access = none |
退出容器,重启容器
exit 推出容器
docker restart svn 重启容器
3. 客户端连接测试
使用地址 svn://ip/仓库名
验证输入用户名密码
检出成功
上传一个文件
用另一个文件夹检出成功,测试完成
本文转载自: 掘金