欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用 docker-compose 挂载数据卷创建 SVN 服务器

程序员文章站 2022-05-30 20:49:29
...

docker-compose配置:

version: '3.1'
services:
  svn:
    image: garethflowers/svn-server
    container_name: svn-server
    restart: always
    ports:
      - 3690:3690
    volumes:
      - ./data/svn:/var/opt/svn

可以看到,我这里把数据卷放在了docker-compose.yml同目录下便于管理(建议数据卷对应目录提前创建并开放权限,以免系统自动创建时因为权限问题而造成失败),如图所示:

使用 docker-compose 挂载数据卷创建 SVN 服务器

启动容器后进入容器,命令:

docker exec -it svn-server /bin/sh

如图: 

使用 docker-compose 挂载数据卷创建 SVN 服务器

创建初始化仓库:

svnadmin create qz-service

使用 docker-compose 挂载数据卷创建 SVN 服务器

进入新创建的目录查看:

使用 docker-compose 挂载数据卷创建 SVN 服务器

conf目录内是配置文件,是初始化需要变动的地方,conf目录内:

使用 docker-compose 挂载数据卷创建 SVN 服务器

首先修改svnserve.conf文件,把如下的配置项去除“#”并去除空格使其生效:

anon-access = read #匿名用户不可读写
auth-access = write #授权用户可以写
password-db = passwd #使用的账户密码对应文件(路径相对于当前文件,如果没有对应的文件可以创建)
authz-db = authz #使用的权限对应文件(路径相对于当前文件,如果没有对应的文件可以创建)
realm = /var/opt/svn/qz-service #认证命名空间,svn账户凭证缓存时的关键字

然后修改帐户密码文件-passwd,增加账户密码:

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret

# 账户名 = 密码 可以配置多项
admin = gbx123
admin1 = gbx1123

修改权限文件authz,增加相应的用户组和相应的权限:


[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average







#创建用户组,并给用户组添加成员,多个成员用','隔开
[groups]
owner = admin
guest = admin1

#赋予owner组的成员所有目录的读写权限
[/]
@owner = rw

#赋予guest组的成员qz-service目录下的读写权限
[qz-service:/]
@guest = rw







# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

保存后退出文件,exit退出容器,查看目录,发现相应的数据卷对应目录内已经生成了相关的文件,down掉容器,然后重启后输入:

svn://ip/qz-service

进入svn服务器。