部署环境:
Ubuntu 24
docker 27.3.1
使用elleflorio/svn-server镜像。
官方地址:https://hub.docker.com/r/elleflorio/svn-server/
docker-compose.yml:
services:
svn-server:
image: elleflorio/svn-server
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
restart: always
privileged: true
ports:
- 80:80
- 3690:3690
container_name: svn-server
working_dir: /home/svn
volumes:
- "./svn:/home/svn"
主要操作如下
1、启动svn-server容器。
2、使用svnadmin配置环境
3、复制配置文件至本地
4、修改docker-compose.yml挂载配置
5、关闭容器、再次启动容器
启动svn-server容器
# 启动svn-server容器
docker compose up -d
进入svnadmin。http://localhost/svnadmin
配置内容:
Subversion 授权文件 => /etc/subversion/subversion-access-control
用户身份验证文件 (SVNUserFile) => /etc/subversion/passwd
代码仓库的父目录 (SVNParentPath) => /home/svn
'svn.exe' 或 'svn'可执行文件 => /usr/bin/svn
'svnadmin.exe' 或 'svnadmin' 可执行文件 => /usr/bin/svnadmin
点击保存后,会自动生成admin用户
使用admin用户登录后,添加用户,创建代码仓库、设置权限。
# 复制配置文件至本地的conf目录,conf目录需要自行创建
docker compose cp svn-server:/etc/subversion/. ./conf/
执行后会复制passwd、subversion-access-control2个文件至conf目录
修改docker-compose.yml挂载配置文件
services:
svn-server:
image: elleflorio/svn-server
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
restart: always
privileged: true
ports:
- 80:80
- 3690:3690
container_name: svn-server
working_dir: /home/svn
volumes:
- "./svn:/home/svn"
- "./conf/subversion-access-control:/etc/subversion/subversion-access-control"
- "./conf/passwd:/etc/subversion/passwd"
增加最后2行配置文件挂载。
重启svn-server容器
# 关闭
docker compose down
# 启动
docker compose up -d
启动后进入svnadmin时,需要重新配置。
配置保存后可以选择admin用户作为管理员用户。登录后之前的配置信息依然有效。