docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker搭建SVN

Docker搭建SVN服务器的实现步骤

作者:月生_

本文主要介绍了Docker搭建SVN服务器的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

序言

本篇文章只介绍如何在 Linux 服务器上安装 SVN,客户端工具的使用不做介绍。 下面的文章以 Centos 8 系统来做为 Linux 服务器,对于其他版本的服务器可以参考官方文档。

检查环境

查看系统下有没有安装过或有安装过老版本的 SVN,如果没有安装,则什么都不会显示

[root@localhost ~]# rpm -ql subversion 
未安装软件包 subversion

如果有老版本的话先删除一下老版本

[root@localhost opt]# yum -y remove subversion 
未找到匹配的参数: subversion 
没有软件包需要移除。 
依赖关系解决。 
无需任何处理。 完毕! 
[root@localhost opt]#

下载安装

我这里建议通过 docker 来安装 svnserver

# 下载镜像
docker pull garethflowers/svn-server
# 创建svn仓库目录,进入svn仓库目录, 用于挂载数据
mkdir -p /var/svn/repos  /var/svn/conf 

启动svn容器

docker run -d \
  --name svn-server \
  -p 3690:3690 \
  -v /var/svn/repos:/var/opt/svn \
  -v /var/svn/conf:/etc/subversion \
  --restart=always \
  garethflowers/svn-server

参数说明:

创建项目和配置权限

创建项目需要进入 SVN 容器内部创建,命令为: docker exec -it svn-server /bin/sh

成功后的界面如下:

[root@localhost svn]# docker exec -it svn-server /bin/sh 
/ #

接下来我们创建一个仓库,并配置用户和读写权限 svnadmin create /var/opt/svn/myproject 这里仓库就已经创建完毕了,这个仓库会同步到主机的 /var/svn/repos 目录下。

[root@localhost repos]# pwd 
/var/svn/repos 
[root@localhost repos]# ll 
总用量 4 drwxr-xr-x. 6 root root 4096 8月 20 10:15 myproject 
[root@localhost repos]#

接下来,我们来进行 SVN 仓库的配置,仓库的配置文件就位于 conf 目录下

这里有三个重要的配置文件

配置用户密码

编辑 passwd 文件, 添加两个用户, 格式为:用户名 = 密码

配置权限控制

这里通过用户组来进行权限控制,单个用户的控制比较麻烦,不进行演示,在公司里面大多都是以用户组来控制权限的。auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。

[groups]部分:定义用户组

# 这里两个用户分别对应上面创建的用户
[groups]
admin_group = admin
test_group = test

[权限规则部分]:控制访问范围和权限

[/]
@admin_group = rw
@test_group = r
* =

更精细的权限控制

如果需要对仓库的子目录设置不同权限(例如只允许某个组修改特定目录),可以添加更具体的规则,例如:

# 对 myproject 仓库的 /trunk 目录设置权限
[myproject:/trunk]
@admin_group = rw    # 管理员可读写
@dev_group = r       # 开发组只读

# 对 myproject 仓库的 /branches/dev 目录设置权限
[myproject:/branches/dev]
@dev_group = rw      # 开发组可读写该分支
@admin_group = rw    # 管理员仍有读写权限
* =                  # 其他用户无权限

配置 svnserve.conf

编辑 svnserve.conf ,内容参考如下:

# force-username-case = none
# 匿名访问的权限 可以是read、write,none,默认为read
anon-access = none
#使授权用户有写权限,前提是 authz 文件中也允许
auth-access = write
#指定用户密码文件的路径
password-db = passwd
#访问控制文件
authz-db = authz
#认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字,应该具有唯一性
realm = /var/svn/tes

测试

上述配置修改完后,重启 docker 容器,接下来,我们使用 admin 用户来测试修改提交代码

完成后,我们使用 admin 用户随便创建一个文件并提交,然后使用 test 用户拉去尝试修改,试试能否成功,不能成功才是对的,因为 test 用户只有读的权限。这里大家自己尝试一下就可以了,我就不截图一个一个的演示了。

到此这篇关于Docker搭建SVN服务器的实现步骤的文章就介绍到这了,更多相关Docker搭建SVN内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文