zoukankan      html  css  js  c++  java
  • Docker搭建SvnServer

    下载svn-server官方镜像

    docker pull garethflowers/svn-server
    

    运行svn-server容器

    docker run  -v /home/svn:/var/opt/svn  --name svn-server  -p 3690:3690  --privileged=true  -e SVN_REPONAME=repository  -d docker.io/garethflowers/svn-server
    
    • -v /home/svn:/var/opt/svn:将容器的/var/opt/svn文件夹下的内容映射到宿主机的/home/svn文件夹下面

    • --name svn-server:容器取名为svn-server

    • -p 3690:3690:将容器的3690端口映射到宿主机器的3690

    • --privileged=true:将容器以特权方式启动

    • -e SVN_REPONAME=repository:环境变量,这里指定svn仓库名称为repository

    创建一个svn仓库

    • 进入容器内部
    docker exec -it svn-server /bin/sh
    
    • 创建一个名为test-repo的仓库
    svnadmin create /var/opt/svn/test-repo
    
    • 退出容器,回到宿主机
    exit
    
    • 修改仓库的配置信息
      进入/home/svn这个目录,可以看到有一个名为test-repo的文件夹
    cd /home/svn
    

    进入test-repo/conf文件夹内部,可看到如下文件夹:

    svnserve.conf:用来配置仓库

    passwd:管理用户

    authz:配置用户组;配置仓库访问权限

    cd test-repo/
    cd conf/
    

    用vi打开svnserve.conf,修改仓库配置

    vi  svnserve.conf
    

    去掉以下三处的注释,注意行头不要留空格:

    修改完毕之后保存并退出vi:

    :wq
    

    用vi打开passwd,添加一个名为test的用户,注意行头不要留空格,等号(=)前后建议加空格,修改完之后保存并退出vi:

    vi passwd
    

    用vi打开authz,添加一个名为test-group的用户组,并为该用户组设置仓库的读写权限,修改完毕保存并退出vi:

    vi authz
    

    [groups]
    #harry_and_sally = harry,sally
    #harry_sally_and_joe = harry,sally,&joe
    
    #新建一个名为test-group的用户组,并把名为test的用户加入到用户组。若多个用户需要加入用户组,用英文逗号分隔
    test-group = test
    
    #设置test-group用户组对仓库test-repo的读写权限
    [test-repo:/]
    @test-group = rw
    
    

    使用SVNClient工具检出test-repo

    本文使用SnailSvn作为SVNClient工具

    新建temp文件夹,然后点击svn检出

    版本库地址:svn://宿主机ip/test-repo

    点击左下角的「小锁」,配置用户名和密码

    用户名:test

    密码:test

    成功连接到了仓库,并在temp文件夹下面创建了一个隐藏的.svn文件夹:

    docker异常退出了怎么办

    docker异常退出、宿主机断电了或宿主机操作系统损坏了怎么办?

    因为svn-server中的文件已经映射到了宿主机器,所以只要文件还在,修复好docker运行环境之后,重新执行docker run命令即可正常访问。

    引用

  • 相关阅读:
    C#-----类DateTime的常用方法
    C#-----字节数组(byte[])和字符串相互转换
    maven执行update命令时报org/apache/maven/shared/filtering/MavenFilteringException错误
    关于dubbo服务的xml配置文件报错的问题
    The method getTextContent() is undefined for the type Node
    jetty各个版本对应的jdk版本
    dubbo启动报java.lang.ClassNotFoundException: javassist.ClassPath
    MAC下安装多版本JDK和切换几种方式
    安装第三方jar包的两种方式
    使用 Nexus 搭建私服仓库时我犯的一个小错误
  • 原文地址:https://www.cnblogs.com/Naylor/p/13740924.html
Copyright © 2011-2022 走看看