构建svn容器 

docker run --privileged=true --restart always --name svn-server -d -v /home/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server

命令解析:

     --privileged=true                  授予容器管理员权限,预防创建svn创库时提示权限不足

    --restart always                    设置容器随宿主机开机自启

    --name svn-server               设置容器name为svn-server,可自定义

    -d                                         指定这个容器后台运行

    -v /home/svn:/var/opt/svn    挂载宿主目录到容器目录

 

进入容器

docker exec -it svn-server /bin/sh

创建svn库

svnadmin create repo

创建成功后生成repo目录,进入该目录下的conf配置文件夹。有以下几个文件authz, passwd, svnserve.conf

          authz 是权限控制,可以设置哪些用户可以访问哪些目录,

          passwd是设置用户和密码的

          svnserve是设置svn相关的操作

(1)配置passwd文件 

vi passwd

在[users]这个节点下我们增加了账户 lisi且密码为123456,注意#后面内容是注释掉的,不用管。且注意等号两边有要有空格

(2)配置authz

vi authz

  这里有两种配置方式

   第一种,以用户组的方式配置,一个组下可以有多个用户,例如

[groups]
admin = zhangsan,lisi

[/] 
@amdin = rw

[repo:/]

           这里的意思就是admin这个组下存在zhangsan,lisi两个账户,[/]表示根目录,@admin表示给组设置根所有仓库的rw(读写)权限,给   组设置权限必须用@符号 ,[/] 代表所有仓库, [repo:/] 代表用户在repo 仓库的所有目录有相应权限,这里根据自己需求设计!

   第二种,直接给用户设置权限

[/]
lisi = rw

两种方式都是可以一起使用的,注意分配均可。 这里做演示,直接使用第二种

(3)编辑svnserve,找到 [general] 节点,加入以下内容

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /var/opt/repo/svn

退出容器,重启容器

用客户端连接测试 svn://ip/仓库,注意开启防火墙端口3690

 

  注:如果在创建创库时提示权限不够,请参考文章:https://blog.csdn.net/xu12387/article/details/93040801

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐