一、下载镜像

# 搜索镜像
docker search svn
# 下载镜像
docker pull garethflowers/svn-server

image-20210404213903514

二、启动镜像

# 编辑配置文件
vim docker-compose.yaml
version: '3'
services:
  svn:
    restart: always
    image: garethflowers/svn-server:latest
    container_name: svn
    privileged: true
    ports:
      - '3690:3690'
    volumes:
      - ./data:/var/opt/svn
# 启动镜像
docker-compose up -d

三、创建项目

# 创建project1项目
docker exec -it svn svnadmin create project1

image-20210404214813406

# 创建目录
mkdir -p /home/qiang/docker-compose/svn/bak
# 导出项目
docker exec -i svn svnadmin dump project1 > /home/qiang/docker-compose/svn/bak/project1_bak_20450322.dump
# 导入项目
docker exec -i svn svnadmin load project1 < /home/qiang/docker-compose/svn/bak/project1_bak_20450322.dump

四、配置说明

# Svn配置文件
svnserve.conf
# 用户配置
passwd
# 权限配置
authz
# 环境变量配置
hooks-env.tmpl

image-20210405004057663

配置用户

# 用户名 = 密码
vim passwd
----------------------------------------
[users]
admin = admin
xiaozhu = 123456
xiaoqiang = 123456
xiaoqiangzai = 123456
----------------------------------------

配置权限

# 这里分了两个组,cool和beautiful,每个组有相应的用户和权限,cool组有xiaoqiang,xiaoqiangzai用户,权限为可读写。beautiful组有xiaozhu用户,权限为只读。admin用户直接授权可读写。
vim authz
----------------------------------------
[groups]
cool = xiaoqiang,xiaoqiangzai
beautiful = xiaozhu
# 控制根目录的权限
[/]
admin = rw
@cool = rw
@beautiful = r
----------------------------------------

Svn配置文件

# 修改Svn配置文件
vim svnserve.conf
----------------------------------------
[general]
# 匿名用户不能访问
anon-access = none
# 授权用户可读可写
auth-access = write
# 密码文件位置
password-db = passwd
# 授权文件位置
authz-db = authz
----------------------------------------