构建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 demo
创建成功后生成demo目录,进入该目录下的conf配置文件夹。有以下几个文件authz, passwd, svnserve.conf
authz 是权限控制,可以设置哪些用户可以访问哪些目录, passwd是设置用户和密码的 svnserve是设置svn相关的操作
1. 配置passwd文件
vi passwd
[users] # harry = harryssecret # sally = sallyssecret- nfz = 123456
2. 配置authz
vi authz 这里有两种配置方式
第一种,以用户组的方式配置,一个组下可以有多个用户,例如:
[groups] admin = nfz,lisi [/] @amdin = rw [repo:/]
这里的意思就是admin这个组下存在zhangsan,lisi两个账户,[/]表示根目录,@admin表示给组设置根所有仓库的rw(读写)权限,给组设置权限必须用@符号 ,[/] 代表所有仓库, [repo:/] 代表用户在repo 仓库的所有目录有相应权限,这里根据自己需求设计。
第二种,直接给用户设置权限
[/] nfz= rw
3. 编辑svnserve,找到 [general] 节点,加入以下内容
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /var/opt/demo/svn
退出容器,重启容器
exit
docker restart svn-server