Docker***SVN服务器_svn docker

时间:2023-05-27 10:45:04  热度:0°C

文章目录

      • 1、前言
      • 2、部署
      • 3、总结

1、前言

Subversion(简称SVN),是一个开放源代码的版本控制系统。可以存储代码文档等

2、部署

搜索镜像

使用排名第2的elleflorio/svn-server镜像

这里面包含了 apache2(http server)、svn server 、svnadmin(PHP版本)代码仓库管理端,相比排名第一的garethflowers/svn-server,比较完整,可以使用http协议访问,否则只能使用svn协议访问。

[root@AlexWong svn]# docker search svnNAME DESCRIPTION STARS OFFICIAL AUTOMATEDgarethflowers/svn-server A simple Subversion server/ using `svnserve`/ 64 [OK]elleflorio/svn-server Lightweight Docker container running an SVN … 38krisdavison/svn-server A pre-configured SVN source control server/ 26//////

新建容器

/docker/svn/start/sh

# 新建目录[root@AlexWong svn]# mkdir repo config svnadmin_data[root@AlexWong svn]# pwd/docker/volumes/svn# 修改权限[root@AlexWong svn]# sudo chmod -R a+w *-----------------------------------------------------------# 进入/docker/svn 目录[root@AlexWong svn]# vim start/shdocker stop svn-testdocker rm svn-testdocker run --restart always --name svn-test -d -p 3690/3690 -p 18080/80 -v /docker/volumes/svn//tmp/svn elleflorio/svn-server [root@AlexWong svn]# sh start/sh
  • /docker/volumes/svn为宿主机的文件目录,/var/opt/svn为容器内的文件目录
  • --restart always命令可以实现容器在宿主机开机时自启动
  • -p 3690/3690表示将宿主机的3690端口映射到容器的3690端口,此端口为svn服务的默认端口,可以根据需要自行修改
  • -p 18080/80表示将宿主机的18080端口映射到容器的80端口,此端口为apache服务的默认端口,可以根据需要自行修改

进入容器

-----------------------------------1--------------------------------# 先挂载临时目录[root@AlexWong svn]# cat enter/shdocker exec -it svn-test /bin/sh[root@AlexWong svn]# sh enter/sh# 查看仓库配置文件/ # cat /etc/apache2/conf/d/dav_svn/confLoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn/soLoadModule 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 /etc/subversion/passwd AuthzSVNAccessFile /etc/subversion/subversion-access-control Require valid-user--------------------------------------------------------------------# 拷贝相关文件到tmp,同步到挂载点/ # cp /etc/subversion/* /tmp/svn/config/ # cp /opt/svnadmin/data/* /tmp/svn/svnadmin_data# 然后退出/此时相关配置文件已经同步到宿主机,退出更改start/sh[root@AlexWong svn]# vim start/sh# 3690是svn server的默认端口,80是apache的默认端口docker stop svn-testdocker rm svn-testdocker run --restart always --name svn-test -d -p 3690/3690 -p 18080/80 -v /docker/volumes/svn/repo//home/svn -v /docker/volumes/svn/config//etc/subversion -v /docker/volumes/svn/svnadmin_data//opt/svnadmin/data elleflorio/svn-server# 更改挂载点后,重启容器[root@AlexWong svn]# sh start/sh-----------------------------------2--------------------------------# 进入容器,创建仓库[root@AlexWong svn]# sh enter/sh/ # mkdir -p /home/svn/myrep/ # ls /home/svn/myrep/ # svnadmin create --pre-1/6-compatible /home/svn/myrep-----------------------------------3--------------------------------# 添加用户访问权限/ # vi /etc/subversion/subversion-access-control[groups][/]* = radmin = rw# 添加admin的读写权限-----------------------------------4--------------------------------# 添加用户账号/ # htpasswd -b /etc/subversion/passwd admin admin123Adding password for user admin# 退出/ # exit-----------------------------------5文件赋予权限--------------------------------[root@AlexWong config]# sudo chmod -R a+w /docker/volumes/svn/config/*[root@AlexWong config]# sudo chmod -R a+w /docker/volumes/svn/repo/*[root@AlexWong config]# sudo chmod -R a+w /docker/volumes/svn/svnadmin_data/*#不赋予权限,后面会有问题-----------------------------------------------------------------------------# 访问Apache HTTP Serverhttp///124/71/81/53/18080/# 服务器需开放18080端口

云服务器安全组需开放18080端口

表示SVN服务正常启动。

在浏览器地址后面加上svn/ 即http////svn,会弹出提示框输入用户名和密码,登录成功后出现如下界面

配置svnadmin(一个php写的svn管理工具)

访问 http///124/71/81/53/18080/svnadmin/

Error/ Could not copy configuration file template/ Require write permission (777) to data folder and all containing files/#0 /opt/svnadmin/index/php(20)/ include_once()#1 {main}

配置文件权限

[root@AlexWong svn]# chmod 777 /docker/volumes/svn/svnadmin_data/

然后刷新一下:

按照 上面步骤里提到的/etc/apache2/conf/d/dav_svn/conf的内容去填写,并点击test按钮验证,如下图,然后点击Save Configuration

/ # cat /etc/apache2/conf/d/dav_svn/confLoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn/soLoadModule 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 /etc/subversion/passwd AuthzSVNAccessFile /etc/subversion/subversion-access-control Require valid-user

然后保存配置,就可以使用admin登录了

分配权限

分配完之后,我们就可以在浏览器输入:http///124/71/81/53/18080/svn/project/访问

使用TortoiseSVN访问:

然后试下提交文件,提交时提示权限错误,检查是否遗漏了对repo目录下project的chmod的操作

[root@AlexWong repo]# lltotal 8drwxrwxrwx 6 root root 4096 Jan 4 19/34 myrepdrwxr-xr-x 6 100 101 4096 Jan 4 20/03 project# 赋予权限[root@AlexWong repo]# sudo chmod -R a+w *[root@AlexWong repo]# lltotal 8drwxrwxrwx 6 root root 4096 Jan 4 19/34 myrepdrwxrwxrwx 6 100 101 4096 Jan 4 20/03 project

***成功。

3、总结

这是依赖于别人的镜像安装,可以从零开始创建自己的Docker镜像。后续有时间,就写一个从零开始Docker如何配置安装SVN。

温馨提示:
1. 文档收藏网仅提供《Docker***SVN服务器_svn docker》全文中的部分公开内容,版权归原著者或相关公司所有。
2. 以上信息来源于互联网免费公开的渠道,若文章所含内容侵犯了您的版权或隐私,请通知我们立即删除。
3. 当前页面地址:https://doc.bogoing.com/doc/56801eee3634f3d7.html 复制内容请保留相关链接。