搜索docker hub
$ docker search svn
第一个就是
拉取镜像
$ docker pull garethflowers/svn-server
# 之后查看镜像
$ docker images svn-server
启动
docker run --privileged=true --restart always --name svn-server -d -v /opt/module/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server
- privileged 得到root权限
- restart 随着docker启动而启动
- name docker ps的时候可以看到容器的名字
- d 后台执行
- v 挂在目录
- p 挂载端口
执行上述命令返回一串字符就是成功了,可以运行docker ps
查看启动的容器
创建仓库
# 以交互式命令行的方式进入到容器
docker exec -it svn-server /bin/sh
# 创建一个仓库
svnadmin create my-svn-repo
# ls 可以看到作为一个仓库,都会初始化出那些文件夹
$ docker exec -it svn-server /bin/sh
$ /var/opt/svn # ls
my-repo
$ /var/opt/svn # cd my-repo/
$ /var/opt/svn/my-repo # ls
README.txt conf db format hooks locks
$ /var/opt/svn/my-repo # cd conf/
$ /var/opt/svn/my-repo/conf # ls
authz hooks-env.tmpl passwd svnserve.conf
上述中,我们要稍微改一下passwd和authz两个文件,因为svn是需要注册用户才能拉取或提交代码的…
添加一个用户
这个分为两步:
- 添加用户(对应passwd文件)
- 授予权限(对应authz文件)
直接贴上代码了,以下创建了admin用户,密码123456,至于上面那两行,那是注释…
接着,给admin用户admin权限,可读可写的权限,稍微解释下:[groups]是分组的意思,这个很常见于控制用户权限的架构中,就是一堆人放在同一个组下,然后给整个组某个权限,就好比你是前端组的,把你加入giblab前端组,你就有各种仓库的权限了。
/
是所有仓库的权限,你还可以设置比如/my-svn-repo
验证
首先别忘了重启docker
$ docker restart svn-server
使用tortorseSVN来检出项目,我提前准备了两个测试文件。