SVN 仓库服务部署
约 655 字大约 2 分钟
DockerDocker ComposeSVNSubversion
2026-03-20
1. elleflorio/svn-server 方案
目录准备
mkdir ./conf
mkdir ./conf/svn_config
mkdir ./conf/svn_repo
touch ./conf/svn_config/subversion-access-control
touch ./conf/svn_config/passwd
chmod 750 ./conf ./conf/svn_config ./conf/svn_repo
chmod 640 ./conf/svn_config/subversion-access-control ./conf/svn_config/passwdcompose 示例
services:
svn:
image: elleflorio/svn-server:latest
container_name: svn-server
restart: always
volumes:
- ./conf/svn_config:/etc/subversion/
- ./conf/svn_repo:/home/svn
ports:
- 8081:80
- 3690:3690启动容器
docker compose up -d初始化配置
先创建管理员账户:
docker exec -t svn-server htpasswd -cb /etc/subversion/passwd <username> <password>然后访问 http://host:8081/svnadmin 完成初始化配置。
建议填写的关键配置如下:
| 配置名称 | 配置内容 |
|---|---|
| Subversion authorization file | /etc/subversion/subversion-access-control |
| User view provider type | passwd |
| User edit provider type | passwd |
| Group view provider type | svnauthfile |
| Group edit provider type | svnauthfile |
| Repository view provider type | svnclient |
| Repository edit provider type | svnclient |
| 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 |
其他配置
添加仓库
- 进入 Repositories > Add。
- 在 Repository name 中填写项目名称。
- 单项目仓库可以选择 Single project structure,自动生成 trunk、branches、tags。
- 多项目仓库可以选择 Multi project structure,再额外填写子项目名称。
仓库权限管理
- 进入 Access-Paths > List。
- 选中目标仓库后,为用户分配访问权限。
- 进入特定路径页面后,再分别维护 Assigned users 和 Assigned groups。
添加用户
- 进入 Users > Add。
- 填写 Username、Password、Re-type password。
- 提交创建。
添加组
- 进入 Groups > Add。
- 填写 Group name。
- 提交创建。
组内添加或删除用户
- 进入 Groups > List。
- 选择要维护的组。
- 在 Users of group 区域中添加或移除用户。
2. SVNAdmin2 方案
启动临时容器导出配置
docker run -d --name svnadmintemp --privileged witersencom/svnadmin:2.5.7 /usr/sbin/init
docker cp svnadmintemp:/home/svnadmin ./
docker cp svnadmintemp:/etc/httpd/conf.d ./svnadmin/
docker cp svnadmintemp:/etc/sasl2 ./svnadmin/
docker stop svnadmintemp
docker rm svnadmintempcompose 示例
services:
svn:
image: witersencom/svnadmin:latest
container_name: svn_admin
restart: always
ports:
- 8082:80
volumes:
- ./svnadmin:/home/svnadmin
- ./svnadmin/conf.d:/etc/httpd/conf.d/
- ./svnadmin/sasl2:/etc/sasl2启动容器
docker compose up -d进入容器授权
docker exec -it svn_admin bash
chown -R apache:apache /home/svnadmin初始化说明
访问 http://host:8082/ 进行初始化配置,默认账号密码是 管理用户/admin/admin。
3. 使用建议
- 不建议为了省事把密码文件或配置目录统一设成 777,敏感文件至少要限制到服务用户可读写。
- 这类仓库服务的数据目录和配置目录都需要备份,相关说明见 11.备份与恢复策略。
- 如果挂载目录权限不对,仓库初始化和提交都会失败,相关说明见 10.持久化文件权限问题。