【docker】部署svn服务器,docker安装部署svn服务器

话不多说直接上步骤!

1.下载镜像,创建容器

 docker pull elleflorio/svn-server  mkdir -p /var/svn  docker run -d  

2.在服务器创建代码仓库

 docker exec -t svn-server svnadmin create /home/svn/test 

以上代码中,在容器中的/home/svn/test目录创建代码仓库,会同步到本机的/var/svn目录。我们先进行svn仓库配置。

SVN库中的配置目录 conf 有三个文件:

 authz 是权限控制文件 passwd 是帐号密码文件 svnserve.conf 是SVN服务综合配置文件 

配置权限配置文件 authz

编辑 authz ,内容参考如下:

[groups]  admin = master,master  [/]  @admin = rw  *=r 第一种方式:单个添加:  [test/] admin = rw test = r 第二种方式(后面采用此方式配置):用户分组,再设权限 [groups]  admin = admin,admin1  test = test1, test2  [/]  @admin = rw  @test = r  [/test1]  @test = rw  * = 备注:版本库的目录格式如下: [<版本库>:/项目/目录] @<用户组名> = 权限 <用户名> = 权限 其中[]內容有許多写法: [/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限 [test:/],表示对版本库test设置权限; [test:/svnadmin],表示对版本库test中的svnadmin项目设置权限; [test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限; 权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户 权限分为:r ,w, rw和null ,null空表示没有任何权限。 auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。 

配置账号密码文件 passwd

编辑 passwd ,内容参考如下:

[users]   master = master admin = admin 

配置 SVN 服务综合配置文件 svnserve.conf

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

[general]   anon-access = none  auth-access = write  password-db = passwd  authz-db = authz  realm = /var/svn/test [sasl] 

3.同步代码到服务器项目目录

(1)在PC上将代码上传到svn仓库(PC上必须安装SVN)

 svn checkout svn:  cd test  echo "hello" >> test.txt  svn add test.txt svn commit test.txt -m 'test' 

(2)服务器同步代码

 docker exec -t svn-server svn checkout svn: 

(3)自动同步代码
实际上,如果我们用于开发的PC每一次向服务器提交一次代码,服务器都需要手动执行一下同步命令,本地代码才会同步到服务器的项目目录。想必很麻烦,于是我们可以使用SVN提供的钩子去实现代码自动更新。

 cd /var/svn/test/hooks  cp post-commit.tmpl post-commit 

我们将post-commit.tmpl钩子文件的后缀名去掉即可生效,于是我们复制一份。接下来我们编辑post-commit文件,注释掉发送邮件的代码。然后在下面加上两行代码即可,如下:

REPOS="$1" REV="$2" TXN_NAME="$3"   export LANG="en_US.UTF-8"  svn update  

编辑完成配置文件之后,我们只需要保存即可,自动生效。此时在PC上修改项目内容,再次提交到代码仓库,服务器会自动同步到服务器的项目目录。不再需要手动执行svn checkout指令

使用svn小乌龟连接时,注意url:svn://ip/项目名

在这里插入图片描述

原文链接:https://blog.csdn.net/weixin_43431218/article/details/131729918?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229ffa1337a04e82e903fa7eee6a39d9b7%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=9ffa1337a04e82e903fa7eee6a39d9b7&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-5-131729918-null-null.nonecase&utm_term=%E7%BB%BF%E8%81%94nas

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享