Docker架设SVN服务器简记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxkalychen/article/details/82195103

本来想在自己的服务器上面架设SVN服务,但是不利于移植。想在虚拟机中架设,但是虚拟机又不常开,所以决定通过Docker来架设。在网上找过一些资料,研究实现,但是从镜像库中拉取下来的镜像最终都没有成功。最后决定自己拉取一个centos的镜像,然后在这个镜像中架设一个全新的SVN服务。

首先,拉取centos镜像。

docker pull daocloud.io/library/centos:7

运行这个镜像。

docker run --name svn --hostname svnserver -it -p 3691:3690 -d daocloud.io/library/centos:7

这里需要注意:

1. svn的默认端口是3690,我们在这里把他映射为宿主服务器的3691;

2. -it这个参数是必须要加的,以前运行了很多镜像,都可以不加这个参数,所以失败了很多次,一直都怀疑是镜像问题。

3. --hostname是强迫症。

接下来我们要进入容器。

docker exec -it svn bash

进去之后,更新系统。

yum update

更新系统是我的习惯,我总是喜欢最新的系统状态。强迫症。

下来该创建文件夹了。我把文件夹放在home下面。

cd /home

mkdir svn

然后创建一个库。

svnadmin create /home/svn/repo/

这里的repo就是我的版本库了。在这个库里面可以看到很多东西,不截图了。

cd /home/svn/repo

ll

进入conf文件夹,可以少打几个字母。

cd conf

接下来的三步很重要:

1. 修改配置文件

vi /home/svn/repo/conf/svnserve.conf

打全路径是便于识别,后面就不用了,都在这个文件夹下。

这里主要把几个注释掉的参数释放出来。

anon-access = none                #控制非鉴权用户访问版本库的权限

auth-access = write                 #控制鉴权用户访问版本库的权限

password-db = passwd           #指定用户名口令文件名

authz-db = authz                     #指定权限配置文件名

realm = somnus  #这个应该没有什么具体作用,我释放之后并没有修改

以上部分复制自https://blog.csdn.net/u012486840/article/details/52524389

修改完保存退出。

2. 添加设置用户和密码

vi passwd

主要在[users]下面设置用户名和密码。

[users]
# harry = harryssecret
# sally = sallyssecret
chris = 123456
kaly = 123456
alice = 123456

前面是用户名,后面是密码。

保存退出。

3. 最后修改权限设置。

先分组,在[groups]下面做分组设置。

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = kaly
user = alice
java = chris,kaly
再在后面对分组设置权限r为可读,w为可写。

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[repo:/]
@admin = rw
@user = r
@java = rw
* =

repo是我创建的库,我只在这里对根目录进行权限分配。如果还在在这里建立子库,则添加节点分配权限。

后面的* = 是将除上面配置以外的用户权限设置为全面禁止。没有做测试。

设置完成了,运行svn。

svnserve -d -r /home/svn/

在宿主系统(我这里还是centos7)中测试一下。

svn co svn://192.168.1.112:3691/repo

提示取出版本0就没问题,因为里面还没有东西。如果提示输入密码用户名之类,便要检查权限设置的问题,还有路径节点的问题。我就是在这两个地方游荡了很久。

提示要设置防火墙放过映射的端口,我的做法简单粗暴,直接关闭防火墙,因为是我自己的服务器,学习研究使用的。公司服务器不行,要谨慎。

在Windows系统中,打开安装好的svn客户端,拉取版本库。

URL输入:svn://192.168.1.112:3691/repo,就可以拉取到我创建的版本库了。

步骤不是很多,服务器配置过几次了,每次配置的时候都忘记了,现在简单记录一下。

然后需要做的就是把这个容器做成自己的Docker镜像,保存在镜像库里面,以后免得费事了。

猜你喜欢

转载自blog.csdn.net/xxkalychen/article/details/82195103