搭建过程如下:

本文中是基于dcoker镜像elleflorio/svn-server进行部署,部署过程若有不妥之处,还请各路大神指点一二。镜像信息可在Docker Hub中搜索进行查看。

1、在宿主机创建svn相关目录

mkdir -p /data/svn/repo
chmod 777 /data/svn/repo
  1. 创建放svn配置及仓库的目录
  2. 仓库给予权限为777,否则在svnadmin无法创建目录

2、拉取最新镜像

docker pull elleflorio/svn-server

3、运行容器

docker run --privileged=true -d --name svn-server -p 8011:80 -p 3690:3690 -v elleflorio/svn-server

4、复制容器中SVN配置文件至宿主机

docker cp svn-server:/etc/subversion /data/svn

5、停止并移除容器

docker stop svn-server
docker rm svn-server

6、运行容器并挂载配置及SVN目录

docker run --privileged=true -d --name svn-server -p 8011:80 -p 3690:3690 \
  -v /data/svn/repo:/home/svn \
  -v /data/svn/subversion-access-control:/etc/subversion/subversion-access-control  \
  -v /data/svn/passwd:/etc/subversion/passwd  \
  elleflorio/svn-server

1、端口80113690可修改为自己要使用的端口;
2、 8011对应于容器内httpd的80端口,也是用于外部访问svn的端口。

7、查看是否运行成功

docker ps

若能够看到有svn-server正在运行中,则启动成功

8、修改容器内的httpd.conf中的ServerName

此时如果使用docker logs svn-server查看日志会发现以下错误
在这里插入图片描述
因此,需要修改httdp.conf的错误

docker exec -it svn-server /bin/sh
cd /etc/apache2/
vi httpd.conf

在这里插入图片描述
找到ServerName,去掉注释或者Copy一行,修改为自己的域名或IP+端口,如ServerName 192.168.1.2:8011
退出容器

exit

重启容器并查看日志

docker restart svn-server
docker logs svn-server

在这里插入图片描述

9、配置svnadmin

访问http://192.168.1.2:8011(此地址为模拟地址)设置svnadmin

Subversion authorization file: /etc/subversion/subversion-access-control
User authentication file (SVNUserFile):/etc/subversion/passwd
Parent directory of the repositories (SVNParentPath):/home/svn
Subversion client executable:/usr/bin/svn
Subversion admin executable:/usr/bin/svnadmin

在这里插入图片描述
点击保存后,会默认创建admin/admin用户,进入界面后可修改admin的默认密码。

10、总结

  1. 使用elleflorio/svn-server镜像搭建SVN后,相对比较方便及快捷;
  2. 可通过elleflorio/svn-server容器中的svnadmin对SVN进行管理,创建资源库、管理用户及授权访问等比较方便。

参考文章:
[1] Docker构建Svn服务器
[2] docker安装svn创建创库 svnadmin create repo时报错提示没有权限问题
[3] Docker Hub:https://hub.docker.com/r/elleflorio/svn-server

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐