docker搭建SVN

docker搭建SVN(非常详细,网上的教程很多坑都填了)

2018年11月16日 17:26:35 walk_thinker 阅读数:2261

容器 github目录 https://github.com/elleFlorio/svn-docker

1.docker search svn

在这里插入图片描述

  1. docker pull docker.io/elleflorio/svn-server 这个带有http协议

3.构建svn容器

docker run -v /usr/local/svn:/home/svn -v /usr/local/svn/passwd:/etc/subversion/passwd -v /usr/local/apache2:/run/apache2 --name hltz_svn -p 3380:80 -p 3690:3960 -e SVN_REPONAME=repos -d docker.io/elleflorio/svn-server

映射/usr/local/apache2:/run/apache2 的目的是http启动要在该目录下创建一个文件,没有映射目录容器重启之后目录就不见了,没有映射目录会报下面那个错误(在容器中 find / -name ‘error.log’,可以查找到错误日志)

不映射会报错

SVN_REPONAME用于指定新创建的代码库的名称。

  1. 创建 http 访问账号

    docker exec -t hltz_svn htpasswd -b /etc/subversion/passwd dqw Dqw
    
    • 1

在这里插入图片描述

此账号和密码被写入容器中的 HTTP 认证文件(/etc/subversion/passwd),且密码是加密的。实践经验表明,既然用 http 协议访问只能查看,那么创建一个公共的账号,供大家使用即可。也可创建与 svn 认证文件中一样的账号和密码。
  • 1
docker exec -it hltz_svn /bin/sh    进入容器中
  • 1
  1. 创建资源库/home/svn # svnadmin create /home/svn/repos
    在这里插入图片描述

6.资源库配置

/var/svn/repository/conf # vi svnserve.conf,把下面4个的#号去掉,左边不能有空格

anon-access = none    #使非授权用户无法访问

auth-access = write    #使授权用户有写权限

password-db = passwd  #指明密码文件路径

authz-db = authz     #访问控制文件

密码文件读取passwd文件,授权信息读取authz文件。

在这里插入图片描述

7.编辑密码文件

/var/opt/svn/repository/conf # vi passwd

在这里插入图片描述

设置 dqw用户密码是dqw

  1. vi authz

在这里插入图片描述

表示dqw账户是管理员, *=r表示所有用户有读权限, @admin =rw 这个用户组有读写权限;

9.配置完成!由于构建容器的时候已经把宿主机svn目录映射到svn容器中,所有/usr/local/svn/repository 目录中可以直接配置svn,修改配置之后重启容器即可!

10.搭建完成之后记得在阿里云上配置3380端口的白名单

11.docker logs -t -f --since=“2018-01-01” --tail=50 hltz_svn

查看日志:发现报错

在这里插入图片描述

)进入容器中apache的安装目录:(视个人安装情况而不同) [root@server ~]# cd /etc/apache2

2)编辑httpd.conf文件,搜索"#ServerName",添加ServerName localhost:80
[root@server conf]# ls
extra httpd.conf magic mime.types original
[root@server conf]# vi httpd.conf
#ServerName www.example.com:80
ServerName localhost:80
3)再重新启动容器即可。

导入的时候报一下错误:

Error:svn: E000013: Can’t open file ‘/home/svn/repos/db/txn-current-lock’: Permission denied(没有权限)

在这里插入图片描述


在容器中添加权限给目录

chmod -R o+rw /home/svn

添加这个权限就可以了,因为启动svn是root用户,但是你用idea的时候不是root用户

http://ip地址:3380/svn/repos/

在网页上可以直接访问,输入账号密码就可以了

在idea跟eclipse中也一样

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章