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

这篇具有很好参考价值的文章主要介绍了【docker】部署svn服务器,docker安装部署svn服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

话不多说直接上步骤!

1.下载镜像,创建容器

# 下载镜像
docker pull elleflorio/svn-server
# 创建svn仓库目录,进入svn仓库目录
mkdir -p /var/svn
# 创建svn服务容器,把容器中的svn仓库映射到本机,并映射3690端口
docker run -d --name svn-server -p 3690:3690 -v "$PWD":/home/svn -v /var/www/html:/var/www/html elleflorio/svn-server

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 # admin为用户组,等号之后的为用户
test = test1, test2 # test为用户组,等号之后的为用户

[/] # 表示svn仓库目录(/var/svn/test),test: 对应前面配置的realm = test
@admin = rw # 表示admin组对仓库(/var/svn/test)目录有读写权限,r为读,w为写
@test = r # 表示test组的用户对对仓库(/var/svn/test)目录只有读的权限

[/test1] # 表示test1目录(/var/svn/test/test1)
@test = rw # 表示test组对test1目录有读写权限
* =

 

备注:版本库的目录格式如下:

[<版本库>:/项目/目录]

@<用户组名> = 权限

<用户名> = 权限

其中[]內容有許多写法:

[/],表示根目录及其一下的路径,根目录是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]
# harry = harryssecret
# sally = sallyssecret
master = master
admin = admin

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

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

[general]
# force-username-case = none
# 匿名访问的权限 可以是read、write,none,默认为read
anon-access = none
#使授权用户有写权限
auth-access = write
#密码数据库的路径
password-db = passwd
#访问控制文件
authz-db = authz
#认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字
realm = /var/svn/test
[sasl]

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

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

# 将仓库中的代码pull到本地,下面的123.123.123.123代表的是服务器IP地址,以下过程可能会需要输入svn账号和密码
svn checkout svn://123.123.123.123/test
# 进入代码目录
cd test
# 创建示例文件
echo "hello" >> test.txt
# 提交代码到SVN仓库
svn add test.txt
svn commit test.txt -m 'test'

(2)服务器同步代码

# 将代码同步到项目目录
docker exec -t svn-server svn checkout svn://127.0.0.1/test /var/www/html/test --username master --password master --force --no-auth-cache

(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"


#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
# 设置编码
export LANG="en_US.UTF-8"
# 更新代码到项目目录
svn update --username master --password master /var/www/html/test

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

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

elleflorio/svn-server,部署&amp;Linux运维,docker,svn,服务器文章来源地址https://www.toymoban.com/news/detail-782380.html

到了这里,关于【docker】部署svn服务器,docker安装部署svn服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Docker实现测试部署CI/CD----相关服务器的安装配置(2)]

            Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。 下载Linux版本的jdk,解压到/usr/local目录 进入 /etc/profile 目录,设置环境变量 刷新配置文件,输入

    2024年02月14日
    浏览(55)
  • 【SVN】windows SVN安装使用教程(服务器4.3.4版本/客户端1.11.0版本)

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年02月08日
    浏览(91)
  • 【Linux】Centos 8 服务器部署:docker 安装 jdk、nginx、nacos、redis、Sentinel Dashboard

    目录 一、安装软件 (1)全部安装命令 (2)安装:jdk (3)安装:nginx  (4)安装:nacos (5)安装:redis (6)安装:Sentinel Dashboard 二、开放端口 三、启动软件  (1)启动:nacos (2)启动:nginx (3)启动:redis (4)启动:Sentinel Dashboard 四、访问网址  (1)访问:nacos 

    2024年02月06日
    浏览(65)
  • 从零实战本地服务器安装 Docker 部署 ThingsBoard PE 专业版(适用于 Postgres + Kafka 企业级生产环境)

    目录 1、准备工作 2、本地服务器Linux Centos7.9系统安装docker 2.1、检查Linux的内核版本 2.2、卸载Docker旧版本(若有需要) 2.3、安装Docker 2.4、安装Docker引擎 2.5、 启动docker和设置开机⾃启动 3、使用 Docker 安装 ThingsBoard PE 3.1、 拉取 ThingsBoard PE 镜像 3.2、获取许可证密钥 3.3、为

    2024年04月22日
    浏览(55)
  • YAPI部署服务器(Docker)

    YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。 可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的

    2024年02月07日
    浏览(46)
  • docker服务器部署Django

    Django是一个广泛使用的Python Web框架,而Docker是一个增强应用程序部署的流行容器平台。结合这两个技术,可以轻松地部署和维护Django应用程序。在本文中,我们将探讨如何使用Docker在服务器上部署Django应用程序。 1、安装Docker和Docker Compose 在开始之前,需要先安装Docker和Doc

    2024年02月14日
    浏览(47)
  • Docker部署Minio (服务器上部署Minio)

    MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 MinIO 提供高性能、与S3 兼

    2024年02月09日
    浏览(95)
  • 在云服务器上部署docker

    目录  云服务器的使用场景  登录云服务  安装部署docker环境  docker常用命令 云服务器位于云盘算产业金字塔底层,是支持云盘算应用的基础设施平台;通过集群、虚拟化、智能热迁徙等一系列手艺应用把成千上万台自力服务器整合成一个大的资源池,和带宽、IP等互联网资源

    2024年02月07日
    浏览(44)
  • 使用Docker部署MinIO服务器

    说明:之前有介绍过如何在项目中使用MinIO及整合成起步依赖在项目中使用,本文介绍如何使用Docker部署MinIO服务器。 首先,需要在服务器上安装Docker,参考Docker安装卸载,Docker常用命令。 安装完之后,敲下面的命令查看Docker版本; 输入下面的命令,拉取MinIO的镜像,不加版

    2024年01月19日
    浏览(65)
  • Django进行docker服务器部署

    Django是一个广泛使用的Python Web框架,而Docker是一个增强应用程序部署的流行容器平台。结合这两个技术,可以轻松地部署和维护Django应用程序。在本文中,我们将探讨如何使用Docker在服务器上部署Django应用程序。 1、安装Docker和Docker Compose 在开始之前,需要先安装Docker和Doc

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包