1.首先,连接linux服务器后,新建svn文件夹:
mkdir svn
svn文件夹中新建data文件夹:
mkdir data
输入命令查看当前可用svn镜像:
docker search svn
2.选择第一个镜像 garethflowers/svn-server。
docker pull garethflowers/svn-server
3.查看下载的镜像
docker images
4.安装并启动容器:
docker run --name svn-server -d -v $(pwd)/data:/var/opt/svn -p 3690:3690 garethflowers/svn-server
- svn-server: docker运行的服务名
- $(pwd): 当前start.sh文件所在路径
- $(pwd)/data: 服务器路径
- /var/opt/svn: docker路径
- 3690: 端口号
Tips:这里可以在svn文件夹中新建start.sh 文件:
touch start.sh
将上面的命令复制到文件中。下次再启动时可通过命令启动:
./start.sh
5.进入docker创建svn仓库并配置:
docker exec -it svn-server /bin/sh
svnadmin create test
创建成功后文件夹中包含以下内容:
6.进入conf文件夹中修改配置文件:
svnserve.conf
[general]
anon-access = none # 匿名用户不可读写,也可设置为只读 read
auth-access = write # 授权用户可写
password-db = passwd # 密码文件路径,相对于当前目录
authz-db = authz # 访问控制文件
realm = /var/opt/svn/test # 认证命名空间,会在认证提示界面显示,并作为凭证缓存的关键字,可以写仓库名称比如test
passwd
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456 #账号 = 密码
authz
[groups]
users = admin
[/] # / 表示所有仓库
admin = rw # 用户 admin 在所有仓库拥有读写权限
[test:/] # 表示以下用户在test仓库 的所有目录有相应权限
@users = rw # 表示 users 组下的用户拥有读写权限
7.测试
svn测试可通过tortoiseSVN软件进行,这里采用命令行进行本地测试(本地测试不存在防火墙、端口号等问题)
docker exec -it svn-server svn co svn://127.0.0.1/test
测试结果