场景
CentOS7中Docker的安装与配置:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701
首先按照上面在CentOS7中安装Docker
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
1、使用Docker搜索svn
docker search svn
2、下载第一个STARS最多的
docker pull docker.io/garethflowers/svn-server
3、运行容器前,先新建宿主机映射的目录
mkdir -p /usr/local/dev/svn/repo
4、映射数据卷并启动容器
docker run --restart always --name svn -d -v /usr/local/dev/svn/repo:/var/opt/svn -p 3690:3690 garethflowers/svn-server
注意:
--name svn 代表指定一个别名,就不用根据容器ID来进行操作了
--restart always 代表容器在宿主机开机时自启动
-v /usr/local/dev/svn/repo:/var/opt/svn 代表将容器内的/var/opt/svn映射到宿主机/usr/local/dev/svn/repo
-p 3690:3690 代表左边宿主机端口映射到容器端口,svn默认3690端口
启动成功后
docker ps
5、进入容器内,创建名称为svn的资源仓库
docker exec -it svn /bin/sh
然后
svnadmin create svn
会新建一个svn仓库目录,进入仓库会有几个文件如下
6、修改conf的配置文件
vi svnserve.conf
修改以下五个配置的地方
anon-access = none # 匿名用户不可读写,也可设置为只读 read auth-access = write # 授权用户可写 password-db = passwd # 密码文件路径,相对于当前目录 authz-db = authz # 访问控制文件,相对于当前目录 realm = /var/opt/svn/svn # 认证命名空间,会在认证提示界面显示,并作为凭证缓存的关键字,可以写仓库名称比如svn
7、修改用户名密码的配置文件
vi passwd
在[users]下面通过"用户名 = 密码"的方式配置。比如这里配置了badao、zhangsan、lisi这三个用户,用户名和密码相同。
8、配置权限文件
vi authz
在[groups]下面添加两个组,把badao和zhangsan放在leader_group组中,把lisi放在user_group组中
leader_group = badao,zhangsan,wangwu
user_group = lisi
然后配置组的权限
[/] @leader_group = rw @user_group = r
这里的[/]代表拥有所有仓库的权限
如果要只拥有svn仓库的权限,可以这样写[svn:/]
@leader_group = rw 这个代表leader_group组下所有用户都拥有读和写的权限
@user_group = r 这个代表user_group组下所有用户只有读的权限
如果要配置单个用户的权限,可以
zhangsan = rw
这种写法。
保存,然后退出容器
exit
9、重启容器
docker restart svn
这里因为上面对容器指定了名字所以不用再使用容器id,当然也可以使用容器id
如果后面需要再修改用户以及组和权限等,需要再次执行进入容器-修改配置文件-重启容器的操作。
10、下载SVN客户端
https://tortoisesvn.net/downloads.html
下载TortoiseSVN对应的版本,这里是Windows64位
下载之后直接双击安装
安装成功后,就可以在某个文件夹下右击显示svn的相关操作了
11、检出代码
检出代码前记得将服务器上对应3690端口开放。
在某目录下右击SVN Checkout
这里的地址就是
svn://服务器ip:3690/svn
点击OK,会提示你输入用户名密码,输入上面配置的用户名密码,左下角默认是记住密码的。
检出代码成功,修改文件,右击提交
提交之后,可以右键找到TortoiseSVM-Settings-Saved Data-Authentication-Clear All,将用户名密码清除掉,切换其他账户测试权限分配的效果
和提交拉取的效果。