Docker搭建SvnServer

下载svn-server官方镜像

docker pull garethflowers/svn-server

运行svn-server容器

docker run  -v /home/svn:/var/opt/svn  --name svn-server  -p 3690:3690  --privileged=true  -e SVN_REPONAME=repository  -d docker.io/garethflowers/svn-server
  • -v /home/svn:/var/opt/svn:将容器的/var/opt/svn文件夹下的内容映射到宿主机的/home/svn文件夹下面

  • --name svn-server:容器取名为svn-server

  • -p 3690:3690:将容器的3690端口映射到宿主机器的3690

  • --privileged=true:将容器以特权方式启动

  • -e SVN_REPONAME=repository:环境变量,这里指定svn仓库名称为repository

创建一个svn仓库

  • 进入容器内部
docker exec -it svn-server /bin/sh
  • 创建一个名为test-repo的仓库
svnadmin create /var/opt/svn/test-repo
  • 退出容器,回到宿主机
exit
  • 修改仓库的配置信息
    进入/home/svn这个目录,可以看到有一个名为test-repo的文件夹
cd /home/svn

进入test-repo/conf文件夹内部,可看到如下文件夹:

svnserve.conf:用来配置仓库

passwd:管理用户

authz:配置用户组;配置仓库访问权限

cd test-repo/
cd conf/

用vi打开svnserve.conf,修改仓库配置

vi  svnserve.conf

去掉以下三处的注释,注意行头不要留空格:

修改完毕之后保存并退出vi:

:wq

用vi打开passwd,添加一个名为test的用户,注意行头不要留空格,等号(=)前后建议加空格,修改完之后保存并退出vi:

vi passwd

用vi打开authz,添加一个名为test-group的用户组,并为该用户组设置仓库的读写权限,修改完毕保存并退出vi:

vi authz

[groups]
#harry_and_sally = harry,sally
#harry_sally_and_joe = harry,sally,&joe

#新建一个名为test-group的用户组,并把名为test的用户加入到用户组。若多个用户需要加入用户组,用英文逗号分隔
test-group = test

#设置test-group用户组对仓库test-repo的读写权限
[test-repo:/]
@test-group = rw

使用SVNClient工具检出test-repo

本文使用SnailSvn作为SVNClient工具

新建temp文件夹,然后点击svn检出

版本库地址:svn://宿主机ip/test-repo

点击左下角的「小锁」,配置用户名和密码

用户名:test

密码:test

成功连接到了仓库,并在temp文件夹下面创建了一个隐藏的.svn文件夹:

docker异常退出了怎么办

docker异常退出、宿主机断电了或宿主机操作系统损坏了怎么办?

因为svn-server中的文件已经映射到了宿主机器,所以只要文件还在,修复好docker运行环境之后,重新执行docker run命令即可正常访问。

引用

posted @ 2020-09-27 17:51  Naylor  阅读(2091)  评论(0编辑  收藏  举报