在前面的文章中,对某个仓库进行用户/权限的相关设定。在实际的开发中也会存在这样的场景,相同的用户信息,对仓库进行不同的设定,总是有一部分信息是共通的,如果仓库多的话,一个一个的修改可能会导致信息的不一致。而解决信息不一致的基本原则在于相同的信息只在一处保存。基于这个原则我们来看一下多个仓库下的配置方式。
方案1: 单仓库解决方案
即使使用一个仓库,根据结构布局的不同,也往往可以解决项目中的问题。不希望在仓库上做过多的设定的话,可以考虑如下的布局结构,这种结构在前面的文章中已经简单介绍过。
目录1 | 目录2 |
---|---|
trunk | 模块1 |
模块2 | |
branches | 模块1 |
模块2 | |
tags | 模块1 |
模块2 |
或者
目录1 | 目录2 |
---|---|
模块1 | trunk |
branches | |
tags | |
模块2 | trunk |
branches | |
tags |
优点
简单方便,备份恢复也都非常单纯,权限管理可以基于目录进行控制。
缺点
单个仓库到底会比较大,目录过多,备份/恢复等所需时间也会较长等。
方案2:多仓库解决方案
创建多个仓库,不同仓库各司其职。利用设定文件可以使用相对路径的方式,需要共通保存的数据提到上层的设定目录,以下使用简单的例子进行模拟。
事前准备
准备镜像
可以使用前面文章中Dockerfile生成的alpine的svn的lts版本的镜像,也可以直接使用使用easypack打好的镜像。
[root@liumiaocn svn]# docker pull liumiaocn/svn:1.10.0
1.10.0: Pulling from liumiaocn/svn
8e3ba11ec2a2: Already exists
4de3c6aa9a6d: Pull complete
f64b6f3c550b: Pull complete
Digest: sha256:c55a104e8f1cc10545b9e51aac4a40271540d0b13ab78c5c0e6ca40c0203f4f7
Status: Downloaded newer image for liumiaocn/svn:1.10.0
[root@liumiaocn svn]# docker images |grep liumiaocn/svn
liumiaocn/svn 1.10.0 15e2c7c993e6 Less than a second ago 12.4 MB
[root@liumiaocn svn]#
启动svn服务
[root@liumiaocn ~]# mkdir -p /usr/local/svn
[root@liumiaocn ~]# cd /usr/local/svn
[root@liumiaocn svn]# docker run -p 3691:3690 -v `pwd`/data:/data/svn --name svn -d liumiaocn/svn:1.10.0
915cd678f07b17234fd54022683401608eaf345c24895515466b9ff4b32cf451
[root@liumiaocn svn]#
确认服务
[root@liumiaocn svn]