申明
参照该文章进行改写。
1 找现有的镜像
https://hub.docker.com/r/elleflorio/svn-server
2 拉取镜像
docker pull elleflorio/svn-server:latest
3 启动容器
这里修改一下服务端口
docker run --name svn-server -d --restart=always -v /home/docker/containers/svn:/home/svn -p 3690:3690 -p 80:80 elleflorio/svn-server:latest
4 进入容器
docker exec -it svn-server sh
5 建立仓库
mkdir -p /home/svn/rep
svnadmin create --pre-1.6-compatible /home/svn/rep
为了与原有客户端兼容(原来VisualSVN为1.7版本),需添加--pre-1.6-xx参数或者--pre-1.7-xx参数
chmod 777 -R /home/svn/rep/db
在容器中需要修改一下这个目录的权限,因为默认是root创建的仓库,在window端没有权限访问,否则会报错:
can't open file db/txn-current-lock:permission
权限控制
镜像默认没有对权限进行控制,修改一下配置文件
vi /etc/apache2/conf.d/dav_svn.conf
<Location /svn>
DAV svn
SVNParentPath /home/svn
SVNListParentPath On
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svn/passwd.conf
AuthzSVNAccessFile /home/svn/auth.conf
Require valid-user
</Location>
可以加到镜像的启动脚本里面,否则容器删除后需要重新配置。
根据此处的路径,配置访问权限
cat auth.conf
[rep:/]
peter=rw
jl=rw
v=r
用户密码见下面步骤
6 建立用户
htpasswd -b /home/svn/passwd.conf peter **
htpasswd -b /home/svn/passwd.conf jl **
htpasswd -b /home/svn/passwd.conf view **
7 网页访问
由于本配置修改了默认权限控制文件路径以及用户认证密码的存储路径,所以需要重新启动一下容器,才能正常使用。
http://xxxx/svn/repository
会要求输入用户名和密码