群晖 NAS,作为网络附属存储设备中的佼佼者,以其强大的存储能力和丰富的功能,深受广大用户的喜爱。其中Container Manager(原Docker) 功能可以去部署不同的软件和工具去解决用户的问题。此文介绍下在群晖NAS的 Container Manager 上部署 SVN 软件,部署 SVN 软件之前,我们先来聊聊为什么要这么做。
Container Manager,是一款开源的应用容器引擎,它可以让开发者将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上。Container Manager 最大的优势在于它的轻量级和可移植性,就像一个 “软件集装箱”,把软件运行所需的环境和程序本身打包在一起,无论在什么地方运行,都能保证环境的一致性。

那么,将 SVN 部署在 Container Manager 中,又有哪些独特的好处呢?首先,管理变得更加轻松。其次,资源利用更加高效。另外,这种部署方式还具有很强的灵活性和可扩展性,当你的项目需求发生变化时,能够快速地调整 SVN 服务的配置和规模。
对于开发者和团队来说,一个稳定、高效且易于管理的版本控制系统是至关重要的。而在群晖 NAS 的 Container Manager 上部署 SVN,恰好能满足这些需求,为你的开发工作带来极大的便利。
虽然群晖NAS全系列型号均已支持Container Manager的安装,但是为了软件运行的稳定和快速,建议选用群晖PLUS系列以上的设备去做部署。
此文介绍所用设备为群晖DS923+,系统版本DSM7.2.1-69057 Update 7
▼群晖NAS的DSM系统和基础功能设置已经部署完成,完成后我们就可以安装 Container Manager 了,具体步骤如下:
登录群晖 NAS 系统界面---打开 “套件中心”---搜索并安装 Container Manager(如为设备未联网需提前下载软件后手动上传安装),等待安装完成。安装完成后,在套件中心的 “已安装” 列表中,找到 “Container Manager” 套件,点击 “启动” 按钮,或者在群晖 NAS 系统的“主菜单”中找到Container Manager的图标,点击运行软件。

▼软件安装完成后,我们可以在“File Station”目录中看到自动生成的“docker”文件夹,为了便于管理和存储 SVN 仓库的数据,我们需要在“docker”文件夹中创建一个SVN专用的文件夹。比如在根目录下创建一个名为 “svn” 的文件夹,用于存放 SVN 相关的数据。

拉取 SVN 镜像
▼打开Container Manager软件---找到“注册表”搜索SVN,此时,会出现多个与 “svn” 相关的镜像,其中官方镜像通常是较为可靠的选择,你可以根据镜像的描述、评分、下载量等信息来选择合适的镜像。
注意:如果在拉取镜像时遇到速度过慢或者失败的情况,可以考虑设置国内镜像源来加速下载,可以网上查找下可用的镜像源地址。

▼容器下载完成后,在映像中可以找到刚刚下载的SVN镜像images。
▼开始创建容器,常规设置中可以配置容器名称等信息。
▼这里设置容器内部的端口号和容器暴露给宿主机的端口号(即本地端口号),本地端口号会在下面配置远程访问端口转发的时候使用。

▼在存储空间这里,选择添加文件夹,此文件夹选择提前创建的SVN文件夹,并填写相应的装载路径/var/opt/svn

▼配置完成后,可以查看摘要信息,确认无误后点击完成,等待群晖启动SVN镜像。

▼在容器列表中就可以看到运行中的SVN-Server了。

创建仓库
▼在操作中使用打开终端机创建新项目。

▼创建新项目的命令格式以 svnadmin create /var/opt/svn/test 为例

▼创建完毕后左边列表里会多一条svnadmin

▼此时在FileStation中可以看到新建的项目仓库

▼配置 svnserve.conf文件,进入刚才创建的仓库的 “conf” 目录,找到 “svnserve.conf” 文件,这个文件是 SVN 服务器的核心配置文件,用于设置服务器的各种参数和访问控制策略。

▼使用文本编辑器打开svnserve.conf这个文件,对以下关键参数进行配置。
它们分别表示:
禁止匿名访问;anon-access = none
允许授权登录并读写;auth-access = write
启用密码数据库;password-db = passwd
指定密码配置文件;authz-db = authz

▼配置 passwd 文件:同样在 “conf” 目录下,打开 “passwd” 文件,这个文件用于存储 SVN 用户的账号和密码信息。在文件的 “[users]” 部分,添加需要使用 SVN 服务的用户及其密码,格式为 “用户名 = 密码”,这里添加了一个用户“kuoyi”并为其设置了密码。


▼配置 authz 文件:“authz” 文件用于配置用户和用户组对 SVN 仓库不同路径的访问权限。在 “conf” 目录下打开该文件,对其进行如下配置。




总结
通过上述详细的步骤,我们成功地在群晖 NAS 的 Container Manager上部署了 SVN 工具,实现了高效的版本控制管理。从最初的准备工作,到安装 Container Manager、拉取 SVN 镜像、运行容器以及配置仓库,每一步都为构建稳定可靠的 SVN 服务奠定了基础 。在这个过程中,我们充分利用了群晖 NAS 强大的存储和管理能力,以及 Container Manager 容器化技术的轻量级、可移植和易于管理的优势,使得 SVN 服务的部署和维护变得更加简单和便捷 。