Docker 方式部署 SVN 服务

左心房为你撑大大i 提交于 2020-03-06 10:31:30

Docker 方式部署 SVN 服务


前提:

  • 主机已经安装并启动了docker服务。
  • 文档所在环境能够连接互联网。
  • 后期进行访问测试的机器已经安装svn客户端。

1.image准备

// 搜索SVN镜像
# docker search svn  
NAME                           DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED  
garethflowers/svn-server       A simple Subversion (SVN) server, using `svn…   58                                      [OK]   
...  

// 拉取需要的镜像
# docker pull garethflowers/svn-server  

// 查看镜像是否拉取成功
# docker images | grep svn-server  
garethflowers/svn-server                      latest                cc28899d5b90        3 weeks ago         14.4MB  

2.启动容器

2.1 宿主机开启路由(内核)转发

// 临时生效  
echo "1" > /proc/sys/net/ipv4/ip_forward

// 永久生效,修改sysctl.conf

net.ipv4.ip_forward = 1		// 追加入/etc/sysctl.conf
# sysctl -p		// 使配置马上生效

2.2 宿主机建立映射目录

# mkdir -pv /data/sdv1/SVN/repo

2.3 启动容器

# docker run --restart always --name svn -d -v /data/sdv1/SVN/repo:/var/opt/svn -p 3690:3690 garethflowers/svn-server  
402b1ab9066d05ab41fdd30e4283f793a2be31d1dc13e165c5bb643225807fd2  

备注

  • /data/sdv1/SVN/repo为宿主机的文件目录,/var/opt/svn为容器内的文件目录。
  • -restart always命令可以实现容器在宿主机开机时自启动。
  • -p 3690:3690表示将宿主机的3690端口映射到容器的3690端口,此端口为svn服务的默认端口,可以根据需要自行修改。

2.4 建立仓库及账户

// 进入容器进行配置  
# docker exec -it svn /bin/sh		// 进入容器
/var/opt/svn # svnadmin create svn		// 创建名称为svn的资源仓库  

// 仓库资源配置,修改svnserve.conf
/var/opt/svn # vi svn/conf/svnserve.conf 
[general]
anon-access = none             # 匿名用户不可读写,也可设置为只读 read
auth-access = write            # 授权用户可写
password-db = passwd           # 密码文件路径,相对于当前目录
authz-db = authz               # 访问控制文件
realm = /var/opt/svn/svn       # 认证命名空间,会在认证提示界面显示,并作为凭证缓存的关键字,可以写仓库名称比如svn

// 配置账号与密码,修改passwd文件,其文件格式为“账号 = 密码”  
/var/opt/svn # vi svn/conf/passwd  
[users]
# harry = harryssecret
# sally = sallyssecret
user1 = admin@123 
user2 = admin@123
user3 = admin@123
user4 = admin@123
user5 = admin@123  

// 修改authz文件  
/var/opt/svn # vi svn/conf/authz
[groups]
owner = user1,user2,user3,user4,user5
[/]               # / 表示所有仓库
user1 = rw        # 用户 user1 在所有仓库拥有读写权限

[svn:/]           # 表示以下用户在仓库 svn 的所有目录有相应权限
@owner = rw       # 表示 owner 组下的用户拥有读写权限  

// 退出容器  
/var/opt/svn # exit  

// 重启该容器  
# docker restart svn

备注

  • 容器内的文件已经映射到本地相应目录(本文为:/data/sdv1/SVN/repo),也可以在本地进行配置。

3.访问测试

3.1 开始连接

3.2 登陆

登录用户列表:user1:admin@123,user2:admin@123,user3:admin@123,user4:admin@123,user5:admin@123

至此,部署完毕!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!