docke 搭建 SVN服务器

基础环境

系统版本: centos-7.6(linux)
环境依赖: Docker

拉取镜像

docker pull elleflorio/svn-server

启动

docker run --name svn \
-d --restart=always \
-v /opt/app/svn/:/home/svn/ \
-p 3380:80  \
-p 3690:3690   \
elleflorio/svn-server

配置SVN

docker exec -it svn /bin/sh
#进入镜像
svnadmin create /home/svn/test_svn
#test_svn 为仓库名
cat /home/svn/test_svn/conf/svnserve.conf |grep -Ev "^#|^$"
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
#配置项需要顶行写,此配置文件,取消注释后,配置项行首会有一个空格,需要删除否则会报错。


#ctrl + d 退出docker终端
#在宿主机上操作映射目录

cat/opt/app/svn/test_svn/conf/passwd |grep -Ev "^#|^$"
[users]
user1 = user123
user2 = user123


cat /opt/app/svn/test_svn/conf/authz |grep -Ev "^#|^$"
[aliases]
[groups]
devteam = user1,user2
[test_svn:/]
@devteam = r
user1 = rw

重启

docker restart svn

验证

在winodws下使用 tortoisesvn进行验证
访问地址为
svn://192.168.1.1/test_svn

配置HTTP代理svn

docker exec -it svn /bin/sh

cat /etc/apache2/conf.d/dav_svn.conf 
LoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/mod_authz_svn.so

<Location /svn>
     DAV svn
     SVNParentPath /home/svn
     SVNListParentPath On
     AuthType Basic
     AuthName "Subversion Repository"
     AuthUserFile /home/svn/passwd
     AuthzSVNAccessFile /home/svn/subversion-access-control
     Require valid-user
  </Location>/

chown apache:apache -R /home/svn/test_svn/db/

#ctrl + d 退出docker终端
#在宿主机上操作映射目录

yum -y install httpd-tools
#宿主机有可能没有对应命令,安装此软件包

htpasswd -b /opt/app/svn/passwd li 123456
#添加用户
cat /opt/app/svn/subversion-access-control 
[groups]
[/]
* = rw

#修改权限
## 重启
docker restart svn
#重启  svn


#使用代理工具  如 nginx,转发域名到本机3380端口

验证

在winodws下使用 tortoisesvn进行验证
访问地址为 http://www.test.com/svn

posted @ 2020-01-07 19:44  li66  阅读(438)  评论(0编辑  收藏  举报