docker SVN部署

1.找现有的镜像

dockerhub上搜索到一个,其在github上公布了镜像构建的dockerfile,并且支持http和svn两种协议,就这个吧。
https://github.com/elleFlorio/svn-docker

2.拉取镜像

docker pull garethflowers/svn-server:1.0

3.启动容器

这里修改一下服务端口

docker run --name svns \
-v /datacv/svnvol/svn:/home/svn \
-h svns \
-p 3380:80 \
-p 3360:3960 \
-m 200m \
-d elleflorio/svn-server:latest

4.进入容器

docker exec -it svns 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 /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/rep/authz
     Require valid-user
</Location>

可以加到镜像的启动脚本里面,否则容器删除后需要重新配置。
根据此处的路径,配置访问权限

cat authz
[rep:/]
peter=rw
jl=rw
v=r

用户密码见下面步骤

6.建立用户

htpasswd -b /home/svn/passwd.conf jack **
htpasswd -b /home/svn/passwd.conf james **
htpasswd -b /home/svn/passwd.conf lee **

7.网页访问

http://xxxx:3380/svn/rep/
会要求输入用户名和密码

如果访问失败,检查容器80端口没有起来。则手动创建目录

/etc # mkdir -p /run/apache2/

看Dockerfile源代码,是有这个目录创建的步骤的,但是在我centos7的docker中,该目录没有创建成功。很奇葩

8.客户端访问

下载一个与OS匹配的64位客户端。

参考:https://www.jianshu.com/p/0146b5ba69a6

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值