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
至此,部署完毕!
来源:oschina
链接:https://my.oschina.net/comics/blog/3188901