使用docker创建svn服务

申明
参照该文章进行改写。

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
会要求输入用户名和密码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容